Use NTFS drive mounted as a folder.
First, close everythig. (Safe mode) Rename \program files\ to |progold, and create a new program files folder on c:. Cut and paste all the stuff in program files onto another drive in the root which I believe must be dynamic. Keep the c:\program files\ folder intact.
Then in disk management on the new drive, right click>set drive letter an dpath" choose to "mount into a folder on supported NTFS partition" Browse to choose the now empty c:\program files\ directory.
Now windows will think c:\program files is on c: when really it is the other hard disk.
(I've not tired this with somehting as volatile as program files, I did it with my \games dorectory. make sure you know how to recover your achine in case it goes terribly wrong.
One otherthing tpo note about mounted folder, you cant send folders on them, into recycle bin, you mst hole shift+delete to delete fodlers in the mounted volume.