Please see my comment to "Solution 1" for major consideration on installation.
You should not decide if your application goes to certain directory. The installers "know" that, because they negotiate with OS about standard path for installed application. If Windows is targeted to x86, this is "Program files". If Windows is targeted to one of the 64-bit architectures (x86-64, IE-64), this is "Program Files" if the application is targeted to the same architecture, and "Program Files (x86)" otherwise (when the application is targeted to x86 and will be executed by Windows via WoW64.
Please see:
https://en.wikipedia.org/wiki/Instruction_set[
^],
https://en.wikipedia.org/wiki/X86[
^],
https://en.wikipedia.org/wiki/X86-64[
^],
https://en.wikipedia.org/wiki/Itanium[
^],
https://en.wikipedia.org/wiki/WoW64[
^].
Many application mess up this rule; and it does not present any problems despite the fact that it is, from the aesthetic point of view, it totally disgusting.
I would add another rule: all .NET products targeted to "Any CPU" (the main and the best, purest .NET model) should also go to "Program files", but some installers put them in "Program Files (x86)", and this is not only disgusting but also sounds ridiculous, as such application will run as 64 bit. But the problem here is: Windows Installer is not yet taught to respect "Any CPU", so I guess the only solution is to create two or three installers: x-86 for x-86 OS and separate installers for x86-64 (same as AMD64, even on Inter) and IE-64 (same as Itanium). In other respects, these installers can be identical.
Note that you never ever should hard-code "Program Files" or "Program Files (x86)". These names are taken from OS by the Windows Installer.
Again, any decent installer should provide the option to specify custom directory, and any decent application should be able to work with it. Failure to do so is unacceptable.
Finally, you should think of providing "portable" product, always or optionally; best installation is no installation. Of course, it is not always possible.
—SA