1) Hook up new drive. I used secondary master, hdc.
2) Reboot your system with live CD, this saves complications of dynamic directories and such.
3) Partition the drive with cfdisk or equivalent. Make sure you mirrored the existing setup, you can also have the new partitions with much larger size.
4) Time to format the new drives partitions (ext3, for example):
mkfs -t ext3 /dev/hdc1
mkfs -t ext3 /dev/hdc3
5) Mount the partitions of old and new HD:
mkdir /mnt/oldmount /dev/hda1 /mnt/old
mkdir /mnt/newmount /dev/hdc1 /mnt/new
6) Copy the old partition onto the new one:
cp --recursive --verbose /mnt/old/bin /mnt/new/bin
7) Get a drink, take a walk, etc. This is going to take a while.
8) Repeat steps 5-7 as needed for other partitions.
9) Once it’s finished, check out the new fstab:
10) Verify that all the partitions are still arranged how you want them set up.
11) Run Grub on the new drive to make it bootable
12) If all went well, you should be able to shut down, swap the new hard drive into the position of the old one, and boot into your much roomier new hard drive