Go to C:\Program Files, and click on Compatibility Files in the Toolbar of
Windows Explorer. This will take you to C:\Users\(Your
Name)\AppData\Local\VirtualStore\Program Files. This is where Vista puts
the files of programs that write certain types of user files to the
C:\Program Files subdirectories. When you're in C:\Program Files\Your
Program (or possibly a subfolder of that path), you should also see a button
in the taskbar of Windows Explorer called "Compatibility Files", which will
you take you directly to your program's config files.
In your program's Options dialog, can you change the default location (path)
of the .ini file (or editing the .ini file itself) to a path that is under
your account name.
For example, C:\Users\(Your Name)\Documents\ProgramName Data (you may have
to create the folder there first). Then Vista won't redirect your files.
It doesn't really cotton to user files being written to the C:\Program Files
subdirectories, after the initial installation, and has put the Program
Files folder on a security level as that of the Windows folders themselves,
making TrustedInstaller the owner.
Too, if your program writes a temporary .ini file (such as program.ini.bak
or program.ini.$$$) in the course of writing to the .ini file,
Virtualization might get confused and virtualize the wrong file, causing
your program, possibly, to recreate the default, because it can't find its
"finalized" program.ini file.