Determining the cause of an installation problem almost invariably requires access to a verbose log file of the failed install. Once you have the log file, finding the point of error is usually straight forward.
Search for "value 3".
The Windows Installer writes the result of each action to the log file like this:
Action ended HH:mm:ss: InstallFinalize. Return value 1.
0 there indicates the action did nothing. there A
1 there indicates that the action was successful. A
2 indicates that the action was cancelled by the user. A
3 indicates there was a failure.
Thus the easiest way to find the failure in the log file is to search for the words
"value 3". Then slowly work up from there to hopefully find more detail about the error. The majority of errors are caused by custom actions so ensure your custom actions log well in failure cases.
Note: the Windows Installer does localize much of the output in the log file. Thus if you get a log file from a localized installation the word
"value" will be translated to the appropriate language.