Mike mentioned Norton “Ghost” for copying the content of one hard drive to another, and the problems he had with it. I had similar difficulties and now use Paragon Partition Manager.
Not only does it allow you to migrate to a new hard drive or to a new computer it allows you to create and/or resize partitions. You can do this even if they contain data or you operating system. There is a free edition but I don't know how limited it is.
Check out Paragon Partition Manager