Thanks Wildman. I should have stated up front that I was hoping for something free if at all possible. 
When you say clone the whole drive, do you really mean that, or do you want to copy all the data to similar, or larger partitions? If you clone the drive, you also copy the partition table, the partition UUIDs, and all the free space of the original drive, and it appears as a 40 GB drive on the new drive, until corrections are made. If you partition the larger drive as you wish, and copy the data only, to it's respective partitions, you don't mess with the partition table, UUIDs, and don't copy the free space, just the data.
I do the latter with the
rsync application, from the
liveCD, to move my OS between drives, or to larger partitions on the same drive. The OS I'm typing this from is a copy from an OS on my external drive, which in turn is a copy from a drive on another machine. All three copies are runnable, with only minor edits to
/etc/fstab and
/boot/grub/menu.lst to reflect the
actual location of each, after the copy process, while still on the liveCD. Once the edits are made, grub can be installed to the
MBR of the
new drive with two or three short commands, from the
liveCD, and then booted as if they'd always been there.