I use the western digital EZ-Install utility, part of their WDDIAG utility package. The newest version may only work on WD drives, but the older versions work on any drive and are still available on western digital's web site.
The install program lets you partition and format a new hard drive with or without a BIOS overlay (necessary in some old computers to fully access large drives) and then copy any partition from any other hard drive to the new drive. It works for FAT16, FAT32, and I think NT volumes, however the target and destination formats must be the same so if you have an existing fat16 partition you're trying to copy, the biggest partition you can use on the new drive is 2 gig and it will be partitioned as fat16. The only way around this (that I know of) is to convert the original fat16 partition to fat32 prior to doing the copy. If your existing hard drive partition is already over 2 gig, then you don't need to worry about it.
It works fine, and I've used the utility for 5 hard drive swapouts without any real problems.