What is the difference between "Program Files" and "Program Files X86"?
Solution 1:
These two folders exist only in 64bit versions of Windows (XP, Vista and 7). 64bit applications go to "Program files", 32bit apps are installed in "Program Files (x86)".
Solution 2:
The other answer is partially correct, but they do not "exist only in 64bit versions of Win7". They also exist in XP 64-bit, Vista 64-bit, Server 2003 64-bit, Server 2008 64-bit, etc.
Native 64-bit applications run in "Program files"; and "Program Files (x86)" serves as backward compatibility for 32-bit applications running on a 64-bit platform.
Solution 3:
The other answers are correct, but they don't say how it works. A installation always looks for the Value of the variable "ProgramFilesPath" in the Windows Registry, which is located in:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
Here you can also find both, the x64-path and the x86-path.
A installation program, which is written for x86-Architecture itself is automatically relocated to the path "Program Files (X86)". Modern installers like InstallShield can also determine which path is the right one, based on the software which they want to set up.