In these steps, drive D refers to the (wrong) drive letter assigned to a volume, and drive C refers to the (new) drive letter you want to change to, or to assign to the volume.
1.Make a full system backup of the computer and system state.
2.Log on as an Administrator.
3.Start Regedt32.exe (or Regedit.exe in Windows XP).
4.Go to the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices1.Click MountedDevices.
2.On the Security menu, click Permissions.
3.Check to make sure Administrators have full control. Change this back when you are finished with these steps. (I logged is as a member of the local admin group and had full control already)
4.Quit Regedt32.exe, and then start Regedit.exe.
5.Go to the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices1.Find the drive letter you want to change to (new). Look for "\DosDevices\C:". (Typically at the bottom of a long list.)
2.Right-click \DosDevices\C:, and then click Rename. In Windows 2000 you must use Regedit instead of Regedt32 to rename this registry key.
3.Rename it to an unused drive letter "\DosDevices\Z:". (This will free up drive letter C: to be used later.)
4.Find the drive letter you want changed. Look for "\DosDevices\D:".
5.Right-click \DosDevices\D:, and then click Rename.
6.Rename it to the appropriate (new) drive letter "\DosDevices\C:".
7.Click the value for \DosDevices\Z:, click Rename, and then name it back to "\DosDevices\D:".
8.Quit Regedit, and then start Regedt32 (not required in Windows XP).
9.Change the permissions back to the previous setting for Administrators (this should probably be Read Only).
10.Restart the computer.