Clonezilla does all that and more.
Disk, partition, Data only, bit-for-bit. a whole variety of cloning methods.
Should be able to clone to a USB drive, Network share, or another Hard drive.
More options than you can shake a stick at.
Here is the step-by-step on making a backup of a 40 GB hard drive onto an external USB drive
http://goinglinux.com/articles/ClonezillaLive.html