I recommend Migrate Easy from Acronis:
http://www.acronis.com/products/migrateeasy/
It handles all windows filesystems and ext2, etx3, and reiserfs filesystems. You install the program in Windows, but then create a bootable CD. It will copy everything over to the new disk and allow you to change the size of the partitions in the process. I've used it several times and it works great.
In prinicple, you can do the same thing for free using "dd" to copy everything to a new disk, then use qtparted to rsize partitions on the new disk (I haven't tried that myself). But I think it is well worth the $40 for Migrate Easy.