No, the setup.exe is built by the BMG. The MSI is build by InstallShield 12.I needed USERPROFILE environmental variable because when the prerequisites are installed by a non-admin user, the files cannot be placed anywhere but in a subfolder under the user's profile folder. I am not aware of any automatic redirection by MSI from Program Files to per-user folder under XP or earlier. Maybe, it's in available in Vista...
But anyways, the problem was actually with the InstallShield project. I will post the solution here since I am sure there are a lot of people building MSIs with InstallShield. The problem was that the custom action SetUserProfileNT was enabled for UI installation and disabled for Install Exec Sequence. Once I enabled the latter, the USERPROFILE variable got populated correctly. I guess when the bootstrapper Setup.exe calls the MSI, it goes into the Exec Sequence instead of UI sequence.
Thanks for your help.