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.