This is something I have to do on a regular basis in the shop. I use GParted, the GNOME Partition Editor. You can either use the Ubuntu LiveCD or the GParted LiveCD (GParted LiveCD is easiest IMHO if that is all you are doing). I created a custom LiveCD that does a lot more than both the CD's put together, but that doesn't really matter right now. What matters is how to prep the windows box before resizing the partition. What you should do first before anything else is clean up the drive, remove any data that doesn't need to be there. I recommend CCleaner for that. That makes the defrag go a lot smoother since there isn't unused data all over the place. After all that data is gone, defrag the computer. Again, I would not recommend using the built in windows defragger, use Auslogics Disk Defragger. That pushes all the data to the front of the partition so that data loss isn't a big deal. All these tools can be found in http://files.volatileminds.net/tools as long as some other nifty ones such as registry cleaners and registry compacters.