If you clone with Linux, using the dd command, the new HD should boot with no extra work, since dd copies EVERYTHING, not just files. MBR; FAT tables if relevant. I know because last year I did it. Got a 100MB HD for my laptop; dd everything to an external HD, noted how many blocks, modified dd command with blocks= at the end to copy back same blocks to the new HD, and when done, I hit the power switch and it came up exactly as it was before, with both XP and Linux available.
I used Puppy live CD for the dd commands. it is very small, but very powerful.