Recently I had an Exchange migration from 2003 to 2007 and had an issue with a few users who were unable to receive calendar invites and users were unable to view their calendars.  I came across a Microsoft article which had the fix for us, it required opening ADSIEdit and adding something to the legacyExchangeDN for all affected users.  This effectively changes how Exchange addresses that user account, and therefore the Address Book must be updated.  The bigger problem that we ran into is that when users send mail from their Outlook cached addresses, or open an email from before the change was made and hit “Reply”, it will attempt to deliver it to the wrong address and the sender will receive an NDR.  This will only happen within the organization, as externally the SMTP address is used, but internally the legacyExchangeDN is used.  What we needed to do to make sure this worked for everyone is to make the change to the legacyExchangeDN, but then add the old address in the proxy addresses section as an X500 address.  An example is below:

old legacyExchangeDN:

/o=Contoso/ou=First Administrative Group/

new legacyExchangeDN:

/o=Contoso/ou=First Administrative Group/cn=Recipients/

new proxy address:

X500:/o=Contoso/ou=First Administrative Group/