If you are comfortable using the command line, you could use dd to copy your drive byte-for-byte. First, you need to find the BSD identifier for your internal drive. If you are booted from the drive, this will be disk0. Otherwise, it is most likely disk1, but you should run the following command to see all of your disks and the partitions they contain.
diskutil list
Once you have determined the identifier, you need to determine the exact size of the drive. Run the following command, replacing N with the proper number.
diskutil info diskN
About halfway through the information shown, find the Total Size. Find the size in 512-byte blocks.
I will assume you want to clone your drive as a file on your external disk. With the disk plugged in, run the following command. N is the disk's identifier number, EXTERNAL DRIVE is the name of the external partition (you can use the tab key to complete this automatically, clone.hdraw is the name of the file you are writing to, and XXXXX is the number of blocks on your internal drive.
dd if=/dev/diskN of="/Volumes/EXTERNAL DRIVE/clone.hdraw" bs=512 count=XXXXX
Notes:
This will copy the drive 512 bytes at a time, which means it will be slow. You can copy faster using a larger block size by increasing the bs argument and decreasing the count argument, but make sure that you are copying an exact number of blocks and that the product of the two remains the same (if you double the block size, the count must be half).
This will create a new file on your external drive, but it will not be mountable as a disk image. It is just a binary file containing the raw data from your drive. You can use this file to restore your drive by switching the if and of arguments.
If you want to copy to another disk instead of to a file, you can change the of argument to a different /dev/diskM. This would replace any partitions already on the other drive with the partitions from your internal drive. This is not recommended if your drive uses a GUID partition table (if you have an Intel mac), since the unique partition identifiers would also be copied, and therefore no longer be unique.