While it's true, what dan says, writing into %Program File% and reading from there is redirected to a "VirtualStore" folder of a users profile, so to a program reading and writing in %Program File% succeeds, while it happens somewhere else.
A problem is, that an installation indeed CAN and WILL put data into %Program Files%, as installations can write there. But this also is taken care of by the redirection mechanism: The redirection will detect there is no VirtualStore file at first and read from %Program Files% and then write to VirtualStore, and in the next run the data is read from VirtualStore, so it's like it's always been there instead of %Program Files%.
What MS did not think of is, every user has it's own VirtualStore. So each user will see and modify the initial database and have their seperate database in their Virtualstore in the end, even if the data in %Program Files% was meant as shared data of multiple computer users.
If you have normal multiuser apps, the data would rather be on a server share, anyway, so I don't see this as a big problem
And if all else fails, you can still set folder permissions to enable writing into %Program Files% or turn off UAC for a temporary arrangement. In a company using self written software, the software distribution may also not be done via setups, and so if you get these problems can also be answered with "it depends".
This is what Doug Hennig said about Vista, which still holds for Win7:
The situation he thinks of here is single user with local data, again. And he says he mainly uses this writable data folder within Program Files for a configuration ini:
The main thing stored there is an INI file that contains a setting specifying the location of the data files.
We solve this by a centraly stored config dbf, which contains config for any foxpro applications in that company regarding paths or sql server connection strings.
The only hardcoded path needed is the location of that dbf. Everything else can be read from there: paths, connection strings. Of course you can also store a path to another/additional config file. This solution for configuration applicable to your situation quite well, so perhaps your company already does something similar.
Bye, Olaf.