I recently performed an in-place upgrade from Exchange Server 5.5 to Exchange 2000 Server. Although I did my best to follow Microsoft's recommended procedures for preparing the Exchange and Active Directory (AD) environments, I learned the hard way about some of the problems you might encounter during this type of upgrade. I pass this information on to you so that you can be prepared if you run into the same situations.
Because of some problems I encountered while attempting to install Active Directory Connector (ADC), I wasn't able to use ADC during the upgrade. The problem with not using ADC to synchronize AD and the Exchange 5.5 Directory Service (DS) was that I had to connect my Exchange mailboxes to my AD accounts manually after the upgrade. Also, each mailbox's SMTP address was reset to the AD logon alias. I strongly suggest that you make your current Exchange installation as stable and error-free as possible before attempting an upgrade, and do your best to use ADC during the upgrade (especially in a large environment with a lot of customization). If using ADC isn't an option because of an erroneous Exchange setup, try creating a new recipient address policy. If the current organization doesn't follow a standard naming convention, you might have to manually configure recipient addresses.
I learned to make sure to disable any backup-agent software before beginning the upgrade; otherwise, you might trigger Messaging API (MAPI) errors. Also, completely remove any antivirus software. You'll need a new version that supports Exchange 2000 anyway.
My servers were running Exchange 5.5 Service Pack 3 (SP3), but the upgrade complained that Exchange wasn't running the service pack needed to perform the upgrade. Reinstalling SP3 didn't change the status of the service-pack level, so I halted the upgrade and installed SP4 before continuing; this seemed to do the trick. If you find yourself in a similar situation, be sure to wait for the SP4 installation to finish successfully before you proceed.
My biggest problem involved service accounts. The Exchange 5.5 organization had used the Exchange Service account to start and run Exchange. But after the upgrade, that account had only Domain User privileges to AD—not the permissions necessary for Exchange 2000's interactions with AD. I couldn't use the Administrator or System accounts, which didn't have full Exchange Admin rights. I discovered that the problem involved registry permissions. You might get a number of errors during upgrade about registry entries not being created or a service not being able to start. If you changed the account that Exchange uses to start services, that account won't be able to mount the Information Store (IS) because the old account still has access to the registry keys (especially if it is now the System account that starts the services). The upgrade doesn't bother to set the permissions. To solve the problem, I gave Exchange similar permissions (under HKEY_ LOCAL_MACHINE\SOFTWARE and HKEY_LOCAL_MACHINE\SERVICES) to the existing permissions for Exchange Admins.
Constantly check and clear the event log and the installation progress log in the root for errors and fix them before continuing. All errors I came across were fixable without having to restore from backup or run Eseutil. When an error occurs during the upgrade, fix it without quitting Setup, to avoid corrupting anything.