Program Files is where 64bit software is installed.
Program Files (x86) is where 32bit software is installed.
Program Data is where both sets of programs should write data (such as configuration data, for example) that they want to store for all users (so can't go in a single users
MyDocs) and that does not belong in registry.
The difference between the two
ProgFiles folders allows you to have two different versions of software installed (for example Internet Explorer comes in both 32 and 64 bit flavors installed together) because Windows silently redirects requests from software in the
As for question 2, you can probably ignore
Program Data most of the time (nothing should be installed in there), but I often find myself jumping between the two
ProgFiles folders so I'll be looking for other answers here to help with that.