I had similar problem. What worked for me: INTERNAL permissions inside ntuser.dat were set incorrectly. Even though the users name and password on the new machines were the same as the old machines the unique identifier was different. Once I set permissions in each users .dat file for full access they could use their profile and update it etc. You can do this with regedt32 and load hive, set permission, then unload hive and changes are saved. The reason it works for you now when you log in as an administrator is that in ntuser.dat the administrator group always has access.