anything ive already installed to c:\program files is now linked to d:\program files and doesnt work
How do you mean "doesn't work"? Do you mean that all the shortcuts now look for a different location? They shouldn't... Even if the shortcut thinks that the program is in a different location, when it can't find it, it will usually start searching for the executable.
It really shouldn't affect old or new programs. I had a friend who insisted on installing new programs to plain old C:, simply because he didn't want MS telling him where to install his applications. I thought that was one of the odder ways to stick it to MS, but whatever.