Okay so I have introduced you to dd now lets get it to do something useful for us, for this you will need a terminal box, a hard drive, the hard drive you are backing up onto, root access, and the ability to double check what you are typing in. I do not think this needs mentioning but the drive you are backing up to has to be either the same size or larger than the current.
The first thing you will need to type into the terminal is:
sudo su
This will log you into the root account if you have access to use sudo, the next thing to type is: fdisk -l

click to enlarge
This will give a listing of all the current hard disks on the machine, here is a picture of my own to give you an example of what it looks like the image to the left of this text. (you may have to click the image to enlarge it)
As you can see from the image my computer currently has 1 hard drive and it is at /dev/sda with multiple partitions. Yours will most likely have two or more entries if you are planning to move it to another hard drive, the next thing to do is determine which hard drive is the current one and which hard drive is the one you are copying too.
Once you have determined these you can run the dd command itself: dd if=[current drive] of=[drive to backup too]
"if" means the input file in this article your current hard drive (example /dev/sda) and "of" means the output file (for example /dev/sdb if thats where your backup hard drive is located)
This can take a very long time as it is copying bit-by-bit, so go get a coffee while its running!
I have said before that dd will copy your entire filesystem, this means that if the new hard drive is larger than the current one, it will leave some space at the end which you can deal with using gparted or another partitioning utility after the copy completes.