To repair this problem you will need to delete a pending.xml file in C:\Windows\winsxs folder. The major work is how to get there and delete it since you are unable to boot completely. There are at least 3 ways to do this.
1. You can slave your hard disk on another system, access your hard disk and perform the deletion.
2. You can use the command prompt (System Console) in the repair tools, after booting from the Vista DVD to repair. Some laptops have this repair option available without having to boot from the DVD, just press F8 as soon as you power on the laptop. When you are in the command prompt, change directory to the C:\Windows\winsxs folder and rename pending.xml to pending.xml.bad or simply delete it. The problem I have with this option is that the prompt refuses to change from the default X:\ (boot partition) to the C:\ partition. I got several tips online as to how to make the partition accessible but none worked.
3. The surest and easiest means of carrying out this operation is to live boot from Linux CD, browse to C:\Windows\winsxs folder using the lovely ever reliable Linux GUI folder browser and delete the culprit, pending.xml. Then restart the computer, remove the CD and boot straight into your Windows Vista.
It is just as easy as that, I have done it before and if you would like to know more about the pending.xml file you can Google it.
If you are confused about anything, feel free to comment.