NUNCA se deben guardar datos en Archivos de Programa. Fijate que la API del sistema operativo tiene una función que te retorna el trayecto HOME del usuario actual, que normalmente sí es de lectura-y-escritura. Después está el directorio All Users que es accesible desde todos los usuarios y también se puede obtener a partir de la API.
Acá está explicado, con código fuente incluído, la forma de obtener la ubicación real de distintos trayectos:
http://delphi.about.com/od/kbwinshel...FolderPath.htm