The HDD backup features of recent versions of Windows strike a good balance between functionality and simplicity, but they're certainly not perfect. All it takes is one small hiccup and transferring a disk image from one drive to another can turn into a painful affair.
I recently found myself moving an installation of Windows 7 from an ancient magnetic drive to something more modern. Sadly not solid-state, but a lot quicker (and quieter). As I've done previously, I used Windows 7's backup tools to create an image and a rescue disk (well, a rescue USB) and prepared to load the ghosted OS onto the newer drive. Unfortunately, despite making sure the imaged partition was a smaller size than the new drive, the restore process would insist that it was too large to fit, which I knew couldn't be the case.
After many failed attempts, I resorted to a third-party utility — Macrium Reflect (which has an extremely functional free edition). Using Macrium, I made an image of the drive and discovered it pumped out a file larger than Windows Backup did, one that would never fit on the new drive.
After some investigation, I found the drive consisted of two partitions — the main one and the 100MB system reserved partition — and even though the combined size of the partitions was small enough to fit on the new disk, the gap of free space between them meant the image was too big to fit. Windows Backup is smart in that it can "condense" this free space, resulting in a smaller image, unfortunately, it gave me a false impression of the overall size.
The solution was to only create an image of the main partition and use that, after which the PC started without any issues.
Macrium of course has a few downsides. The big one is that the image it makes is in a proprietary format, so without the program you won't be able to retrieve data from it. However, it does allow you to convert an image into a Virtual Hard Disk, which is easily mounted in Windows.