It is easy to determine if Windows Installer prompts for a reboot because it installed over a file that is in use. The first step is to generate a verbose log file. In the verbose log file, look for the presence of the ReplacedInUseFiles property in the property dump.
If this property is present with a value of 1, then the Installer will require a reboot because it overwrote an in-use file.
To determine which file was in-use, scan the log file for "Info 1603" and "Info 1903" messages. The 1603 message will be logged by the InstallValidate action. For example:
MSI (s) (DC:DC): Doing action: InstallValidate
Action start 19:55:42: InstallValidate.
Info 1603. The file d:\test\sample.exe is being held in use by the following process: Name: sample.exe, Id: 4068, Window Title: 'Sample'. Close that application and retry.
Normally, this message coincides with the presentation of the FilesInUse dialog box. In silent UI cases, this dialog...