Symptom: When you run the 'Add Remove Programs' Control Panel (or 'Program and Features' Control Panel as it is in Windows 7 and 8) the system hangs 'populating the list'.
OK, two tacks here, firstly how to get the program you need to uninstall, uninstalled. Then we will see about fixing it.
Use REGEDIT to navigate to:
There you will see a whole bunch of keys arranged as GUIDS. You are going to need to find the entry that corresponds to the program you want to uninstall. You could, of course, do a search but if you are uncertain about exactly what to search for, it is easy to do if you arrange your fingers and eyes in the following way: Highlight the first GUID and look over to the right-hand pane and focus you eyes on the value that says DisplayName this is the name as it would appear in the GUI if it was working. Keep you eye on that as you hit the down-arrow key and you should find what you need fairly quickly.
When you find the entry you need, double click the value marked 'UninstallString' and copy the contents to your copy-n-paste buffer. Sometimes this will look like it refers to a proprietary command, sometimes (if the vendor used InstallShield to create their install) it will be a command that runs InstallShield followed by some syntax containing the GUID. Anyhoo, whatever it contains, simply paste that into a CMD line window and it should launch the uninstall application just as though you had done it from the GUI.
OK. Why is it broken.
I am sure there can be multiple reasons, one of the more typical is that one of the entries in:
Has an error, typically it will be in one of the values that contains a path. It maybe that a drive letter changed for a disk and the required clean-up did not occur. You will have to go through each GUID and inspect each value containing paths and reconcile them. Also watch out for paths with erroneous double back-slashes, I have seen that a few times as well.