First, some of the history. We started with Exchange 2003 Standard shortly after it came out. I remember that it was before the first Service Pack. At the time I thought to myself, "We will never hit that 16 Gb database limit". Boy was I wrong! Service Pack 2 was a life saver as it let us keep the mail flowing by raising the database limit. This was good for a while but going from one campus to 4 in a year and doubling our staff was putting quite a strain on our email server and it's limits. Also with the introduction of ActiveSync for the iPhone, we were having more and more sync issues and missing appointments.
Fast forward till 3 months ago. We were hitting the max limit of Exchange 03 Standard again and needed a solution. I wanted to wait for Exchange 2010 and just skip 07 but we couldn't wait any longer so we decided to make the move to 07 and then upgrade when 2010 came out. The problem was that we needed a fix now and couldn't wait until our transition so we did an in-place upgrade from Exchange 2003 Standard to Exchange 2003 Enterprise to buy us some more time.
Then the planning and testing began. After reading up on several blogs and talking with several of my Church IT RoundTable peeps, I installed the server. My main source of documentation was a blogpost on MSExchange.org which was a huge help! There are a few things it leaves out though but Google came to the rescue. I installed Exchange 2007 as an all-in-one install like I had with Exchange 2003. Installing an Exchange front end server would have made things easier as I could have kept things running as we migrated our users and services to the new server though.
I though I would be able to keep things going with the setup I had but after much testing, I found out that with how complex our environment is, it just wouldn't work. We have a BES and rely heavily on ActiveSync and OWA and I just couldn't get everything happy. So, I made the move to the new server all at once (For us the best time window was Sunday after all the services).
There were a few "gotchas" that came up after the transition.
First, I found out that while computers on the network will magically update their server settings after their mailbox is moved to the new server, it doesn't update computers off-site connecting by RPC over HTTP. This lead to quite a few email, text messages, and tweets from people telling me that they couldn't connect. I had set up a blog prior to the cut over and had informed people that because email could be down and that I won't be able to communicate with them, that they needed to check the blog for updates. This worked well (for the people who went there) and I'll definitely use a blog again in the future. We also found out that the new "Outlook Anywhere" (RPC over HTTP) defaults to "NTLM Authentication" and by default won't accept clients configured to use "Basic authentication". We had some clients that had used Basic Authentication and to speed things up had to enable it for Outlook Anywhere. This EMC command did the trick:
Set-OutlookAnywhere -Name Server01 -IISAuthenticationMethod Basic,NTLM
Second, IMAP and POP are not enabled by default. After a few people using Mac Mail and some other mail clients that rely on IMAP. Since we only had a few people using this, it took a back seat untill the MAPI and ActiveSync clients were working.
Third, Exchange 07 now manages manages what 03 called "SMTP Virtual Server" in the Hub Transport Role and Send Connectors. Read up on this if you are unfamiliar with how this works. It can save you some headaches.
Fourth, We moved the final accounts to the new server which were the few BES clients I had. This blogpost is what I used for reference and it worked out well.
What would I do differently? Hard call but I think I would set up an Exchange 2007 Front End Server so that I could take my time. A front end server would proxy the OWA requests when you are in a coexistence period. I also would have gotten the new certificate before moving my services to the new server. Our one Palm Centro user had ActiveSync problems with the GoDaddy.com certificate we had. My CITRT peeps David Szpunar and Daryl Hunter have some great blogposts on working with Certs when upgradeing so I'll just link to their posts.
Microsoft knew that ActiveSync and the AutoConnect settings can be a pain so they made a great site for testing your connection, https://www.testexchangeconnectivity.com/
So, I hope this helps someone out there but mostly I did this post so I don't forget!