It seems there are huge amounts of information regarding Exchange Upgrades. We, on the other hand, had to move from a large (350~) user POP3 setup to a hosted Exchange system.

Some issues we found were:
1) No bulk pst upload to Online exchange (only local exchange)
2) The need for users to have historic email in as many outlook clients as possible, as moving everyone straight to OWA was considered too large of a sudden change.
3)

To solve these issues, we came up with the following plan. This would give us time to set the users up, add a bit of seemlessness to their experience, and enable a rather quick Go Live day.

10 Steps total

Step 1: Check Outlook Version

The Office 365 seems to only work for Outlook 2007 SP3 and above. Also, note the locations of any PST's you'll want to keep.

Step 2: Export User's Rules and Extra Calendars

These did not seem to carry with the PST. In office 2010 (our most common), Calendars were exported via the File-->Options-> Advanced menu, and Rules were exported via "Manage Rules & Alerts"

Step 3: Set retention Period for POP3 emails to 0

When we create the new profile we do not want to redownload emails, so set this and send/receive to clear server's mailbox

Step 4: Close outlook, and create a new mail profile.

Create your Office 365 account as the first account for the new profile.

The new profile is created just for safety reasons, so we can always go back if there are settings or access that didn't transfer over properly.

Step 5: Add the POP3 account, but remove it's data file.

Add this POP3 account as a secondary account on the profile. You can just create a new PST for this account.

After completion, in Account Settings -> Data files, remove the newly created PST.

This will force the OST which was created first to become the default email store.

Step 6: Select the newly created POP3 account to be the default

Make the POP3 account the default account.

With this setup, we will be using the POP3 account/server as the send and receive account, while using the Office 365 server as the storage for the emails. This will auto sync online.

Step 7: Import historic emails.

As noted originally, we wanted to keep old emails and folder structure. To get this, we import the old PST's into the new Office365 account. Depending on size, this has taken between a few minutes, upwards of an hour.

Step 8: Import Rules, and extra calendars

Using normal import methods, make sure to import the rules and calendars that you exported.

Rules will have to be reassigned to the desired folders, either by yourself or users. It's an unfortunate caveat with setting up the system so far.

Step 9: Check signatures have transferred and applied correctly.

Step 10: Go Live day - Change MX records and reconfigure PC's one last time.

On our go live day, we plan to have everyone create yet another new profile, this time only having the Office 365 account added.

This is mainly for safety again, as well as ease of use of the users. Asking them to reconfigure outlook accounts themselves is out of the question, and with 350~ users, we cannot go in and do it manually in any decent amount of time.

With smaller installations, one can create these profiles manually and set as the default. Since we have so many accounts, we have a c# .exe which will change the registry.

For 2007/2010/2013 versions of outlook, it will simply create a new profile and force it to be default. When the user first opens outlook, they will only have to put in their login credentials.
For 2003 and previous, it will strip out any send/receive features, leaving just a mailbox to view. For these users, we have to just give them OWA for the time being.

I can post this .exe code of there is interest.

Obviously this is not the extent of the project. Other things included were creating users, licenses, authorizing, creating initial passwords, all of which were helped by the referenced page:

Given the listed issues, as well as others we came up with. this was the best solution we could get. So far the only issues we got after "prepping" was minor settings differences (autocomplete, calendar colours, etc).
Clearly, after go live, we will need to go back to each computer and remove the now unused pst's and ost's, but with this method we at least have some extra time to go through it all and make sure that we have the data available should we need to unexpectedly.
I know most people are far beyond the POP3 stage, but for those who are not, I hope this helps.

I will be doing a similar migration in the coming weeks. My scenario is this:
Local ISP based POP/IMAP email. ALL email is local to users in PST files due to the ISP only allowing 100MB of storage. Average PST file size is probably 4 GB, with some as high as 16 GB.
We have tested email using a test account, as well as a real account that is shared by 5 users. So far, so good. The users with the shared account are connecting using IMAP for now.
Set up DirSync, clean up and make any aliases/forwards etc. Test
Send out a step by step with pictures on how to set up a new email account. Most users will be ok, some will need their hands held.
On a late Friday afternoon, we will change the MX record to reflect Office 365 so mail will flow into the new accounts.
Most users will be shown how to import their PST files. The others with huge PST's I was planning on using Microsoft's PST Capture software.

Any advice or suggestions?
Oh, we have about 120 local users and 60 sales people that use laptops that are domain joined, but operate out in the wild 95% of the time.