When using dd, if you target the root device, it don't matter what's on the disk, it's a bitwise copy. Just make sure the recipient is the same exact size or larger, then give 'er a whirl.
Por exemplo:
[code:1:5399bca6d9]
//Assume we have an ATA drive, hard drive 1, which is 40G
//that we want to back up to SATA hard drive 2, which is 80G
//After booting with a liveCD of your choice...
~$ ls /dev/hd*
/dev/hda /dev/hda1 /dev/hdb
//likely, hda is the disk since it sees a partition, but let's be sure
~$ dmesg|grep -i hda
//Some output will be put to the screen, hopefully indicating that this is the
//hard disk you're looking for, like the following
ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda
MA, hdb
io
hda: TOSHIBA MK6022GAX, ATA DISK drive
hda: max request size: 128KiB
hda: 117210240 sectors (60011 MB), CHS=65535/16/63, UDMA(100)
...
//your's will be different to reflect your drive, note that this one's a 60GB drive
//Follow the same steps to discover your SATA drive
~$ ls /dev/sd*
/dev/sda
//pretty easy, here we have only one, unpartitioned device, must be it,
//but again, doublecheck with
~$dmesg|grep -i sda
//Now that we have the devices, we set this off and do something else productive.
~$ dd if=/dev/hda of=/dev/sda bs=1024[/code:1:5399bca6d9]
Once that's done, you'd have 40G unallocated disk space on the 80G drive, you could either make a new partition (can be done inside of Windows) or resize the existing partition.
To resize:
1) Runa defrag. This moves the data to the "beginning" of the disk (actually the outtermost parts of the disk, but not important)
2) Do a disk error check, for good measure
3) Download the
GParted LiveCD ISO and burn it with your favorite burner.
4) Reboot with the disk in drive, setting BIOS to boot via cd in necessary.
5) Answer some simple questions about your machine (all defaults work 95% of the time)
6) When the liveCD is finished scanning your system, seelct the drive (likely sda), and resize it with the GUI. Very easy stuff.