What I really want to know is what the hell Microsoft was doing touching user data? OK, they probably have to update some data files (registry hive, config files, etc.) but the way that they're doing seems to be prone to disaster if everything doesn't go exactly according to plan.
What I figure they're doing is this...
1. Move all data that's in C:\Users to C:\Windows.old\Users.
2. Do the upgrade.
3. Move the data back from C:\Windows.old\Users back to C:\Users and update the files in the process.
This is absolutely insane!!! This kind of process, especially when dealing with a whole lot of files, can lead to things going wrong if you don't do a thorough check to see if all data files are there after you do the file move.
What the really should be doing is...
1. Find the files in C:\Users that they need to change, make copies of them in the same place where they are but name them with a .winupg at the end of the file name.
2. Do the upgrade.
3. If the upgrade is successful, scan the directory tree for all files with a .winupg at the end of it and delete them. If the upgrade process doesn't work, find all the files with .winupg at the of it, find the version of the file that doesn't have a .winupg at the end, delete it, and then chop the .winupg off of it and there you go, all data is restored.
This process here is a lot less prone to things going wrong compared to the mass wholesale copy/move process that I think Microsoft is doing.