If you are migration from Exchagne 200x to Exchagne 2007 if you have Email policy with mulitple domains listed in the Exchange address tab and if you Primary smtp is not same as the DefaultEmail policy then once the mailbox is moved then you primary smtp address will get changed to email address which is set throught Defaultemail policy. The simple solution is you need to make sure that -EmailAddresspolicy should be disabled before you move the mailbox. This solves the problem.
$UserList = Get-Content “PathofTextfilecontactingusernames”
foreach($user in $UserList)
{
set-Mailbox $user -EmailAddressPolicyEnabled $false
}