Thank you all very very much, I was able to sort this all out eventually. And my outcome: Yes, it's possible to change the default User and Program Files directories and still have a working system that can update.

It just took an obscene amount of trial and error..
I figured out the reg file command line problem - it needed parenthetical enclosure to run in the directory I was testing from (the desktop).
regedit.exe /s "%userprofile%\desktop\myreg.reg"Worked great. The reg file itself needed tweaking - here's the finished product on that:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]
"CommonFilesDir"="D:\\Program Files\\Common Files"
"CommonFilesDir (x86)"="D:\\Program Files (x86)\\Common Files"
"CommonW6432Dir"="D:\\Program Files\\Common Files"
"ProgramFilesDir"="D:\\Program Files"
"ProgramFilesDir (x86)"="D:\\Program Files (x86)"
"ProgramW6432Dir"="D:\\Program Files"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList]
"ProfilesDirectory"=hex(2):44,00,3a,00,5c,00,55,00,73,00,65,00,72,00,73,00,00,\
00
"Default"=hex(2):44,00,3a,00,5c,00,55,00,73,00,65,00,72,00,73,00,5c,00,44,00,\
65,00,66,00,61,00,75,00,6c,00,74,00,00,00
"Public"=hex(2):44,00,3a,00,5c,00,55,00,73,00,65,00,72,00,73,00,5c,00,50,00,75,\
00,62,00,6c,00,69,00,63,00,00,00
"ProgramData"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,44,00,72,00,69,\
00,76,00,65,00,25,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,44,00,\
61,00,74,00,61,00,00,00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-18]
"Flags"=dword:0000000c
"State"=dword:00000000
"RefCount"=dword:00000001
"Sid"=hex:01,01,00,00,00,00,00,05,12,00,00,00
"ProfileImagePath"=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,\
00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,\
5c,00,63,00,6f,00,6e,00,66,00,69,00,67,00,5c,00,73,00,79,00,73,00,74,00,65,\
00,6d,00,70,00,72,00,6f,00,66,00,69,00,6c,00,65,00,00,00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-19]
"ProfileImagePath"=hex(2):43,00,3a,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,\
00,73,00,5c,00,53,00,65,00,72,00,76,00,69,00,63,00,65,00,50,00,72,00,6f,00,\
66,00,69,00,6c,00,65,00,73,00,5c,00,4c,00,6f,00,63,00,61,00,6c,00,53,00,65,\
00,72,00,76,00,69,00,63,00,65,00,00,00
"Flags"=dword:00000000
"State"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-20]
"ProfileImagePath"=hex(2):43,00,3a,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,\
00,73,00,5c,00,53,00,65,00,72,00,76,00,69,00,63,00,65,00,50,00,72,00,6f,00,\
66,00,69,00,6c,00,65,00,73,00,5c,00,4e,00,65,00,74,00,77,00,6f,00,72,00,6b,\
00,53,00,65,00,72,00,76,00,69,00,63,00,65,00,00,00
"Flags"=dword:00000000
"State"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-884096590-523525792-2789496666-1001]
"ProfileImagePath"=hex(2):43,00,3a,00,5c,00,55,00,73,00,65,00,72,00,73,00,5c,\
00,47,00,65,00,6e,00,65,00,72,00,69,00,63,00,20,00,55,00,73,00,65,00,72,00,\
00,00
"Flags"=dword:00000000
"State"=dword:00000000I created a Windows 7 x64 Repair CD (it's the equivalent of Recovery Console for XP I guess), restarted and used that to get into the command line. Ran this batch file based on the reading you guys provided:
@echo off
robocopy "C:\Users" "D:\Users" /mir /xj /copyall
robocopy "C:\Program Files" "D:\Program Files" /mir /xj /copyall
robocopy "C:\Program Files (x86)" "D:\Program Files (x86)" /mir /xj /copyall
echo File Copy Complete. Please Restart.
pause
exitRebooted. Created new Admin user and deleted the old one (to avoid profile corruption from the move). Tested painstakingly for all the things that had been breaking in my previous attempts - like all shortcuts disappearing, Windows Search not returning any results or crashing, Internet Explorer not loading. and pretty much every app on the system crashing. All of that seems fixed (for now). Needs more testing.
Installed Windows 7 x64 Service Pack 1 RTM without a hitch. Installed Microsoft Security Essentials and updated it without a hitch. Ran Windows Update and updates installed without a hitch.
Installed Internet Explorer 9 x64 Release Candidate - Internet Explorer stopped working (would momentarily flash on screen when loaded, then vanish - known issue). Had to revert to IE8.
It looks like everything (except IE9 RC) will install and update perfectly. Since the guy I'm preparing this for is sane enough to use Firefox anyway, I don't think he'll mind

Picture: Shows Windows Update success, Service Pack 1, open browser, updated MSE, and my customized registry. That's a whole lotta Microsoft crammed in 1 picture lol.

*Forgot to mention, Mr Hoov, you asked what I was trying to accomplish with all this. In my friend's instance, he'll be running his OS from a solid state drive. In addition to disabling indexing and moving the paging file, I wanted to move the Users and Program Files folders for two reasons:
To reduce writes on the SSD.
To make it easier to clone the drive, with a smaller image, that's faster and more convenient to restore in case anything goes wrong, or just for the sake of maintenance. He'll be using CloneZilla, and he can make an image that fits onto a single layer DVD, and will restore in about 15 mins. Not too shabby I'd say.
Thanks again guys, couldn't have done it without you!
