Parts of this answer comes from: How to move Ubuntu installation from one hdd to another? and How to move Ubuntu installation from one hdd to another?
Clonezilla may be useful for cloning your hard disk, even for those situations on which you need to do it with different size disks as mentioned here: http://www.tuxradar.com/content/how-clone-hard-drives-clonezilla

Moving to a bigger disk
It's easy to ensure that a clone of a SCSI
disk is restored to a SCSI disk, but you'll have a tough time finding
an exact replica size-wise. The good news is you don't have to restore
a disk on another disk of the same size. The even better news is that
you can in fact restore the image to a much larger disk.
When restoring a disk, Clonezilla enables you to resize the filesystem
and create partitions on the new disk proportionally. But even if you
are moving to a bigger disk, you might prefer to keep the partitions
as they are. In that case you can ask Clonezilla to create the
partition table as its listed in the image.
There is documentation about moving to a larger disk as mentioned here but I am not sure that you can do it the opposite (cloning to a smaller disk).
Clonezilla allow you to run cloning procedures for both physical hard disk drive, partitions or logical volumes which may be useful for your case.
Clonezilla offers several Live CD's and bootable USB images and there is also documented that you can resize the free space on the disk after the copy, in which case the suggestion to use gparted under Linux is also a good idea but you may wish to consider resizing under Windows Vista/7.
In the case that you wish to use all the hard disk drive capacity for the system you will simply need to start again from your USB/Live session CD), then use gParted and run the resizing process which is easy indeed.
Good luck!