Also, if you move the affected mailboxes back to the original server, Outlook no longer crashes.
If this is the case, check to see if the Guid-Replid cache is the root cause.
Exchange 2003 SP1 has Guid-Replid caching disabled by default.
Exchange 2003 SP2 has Guid-Replid caching enabled by default.
Exchange 2003 SP2 plus KB
922617 has Guid-Replid caching disabled by default.
You can achieve the same results as the KB 922617 fix by manually disabling the Guid-Replid cache for each information store. Details on how to do that are documented in the KB.
Here is the reason why the Guid-Replid cache sometimes has incorrect contents (taken from the mentioned KB):
This problem occurs because of a difference between the ReplidMap table in the memory on the server and the ReplidMap table in the Jet database. This difference causes a stack overflow that causes Outlook 2003 to crash. When Outlook 2003 constructs an entry identifier for an item, Outlook 2003 combines a GUID together with the item counter for the item. The GUID is determined by using an index for the item. In this case, Outlook 2003 uses different methods to request the entry identifier. These different methods return different entry identifiers. One entry identifier contains data that was returned from the Jet database. The other entry identifier contains data that was returned from the memory cache.