GParted should be able to do that for you.
Here is a tutuorial - you shouldn't need to do the startup repair mentioned as installing Win 7 afterwards obviates the need for that. Using GParted to Resize Your Windows Vista Partition :: the How-To Geek
This is the version of Gparted I have used - direct d/l SourceForge.net: GParted: Downloading ...
Here's the direct d/l for a tiny free isoburner - works great , just runs straight away - I use to burn iso to cd all the time http://www.ntfs.com/downloads/Iso-burner.zip
For anyone not familiar with burning bootable .iso files, don't format the cd, if Autoplay pops up, just close it
Hope it helps