Hola.
En Vista, debido al UAC (User Account Control), determinadas carpetas están "blindadas". Cuando se intenta acceder a ellas o escribir, pide elevación de permisos. Si tu programa no tiene en cuenta que cuando el sistema requiera elevación se la pida al usuario, o directamente por código se la otorgue, es posible que el sistema deniegue la petición y genere un error en tiempo de ejecución. Prueba a ejecutar el programa con la opción del botón derecho "Ejecutar como administrador". Si te funciona de esta manera, deberás modificar tu programa para que se solicite elevación (o avisar que siempre se ejecute como administrador).
Consulta este link: msdn.microsoft.com/en-us/library/bb530410.aspx
Una de las soluciones es generar un fichero manifest adecuado, pero con C++Builder 6 no se puede. Sinceramente te digo que intentar manejar a nivel de código el UAC, sin las herramientas adecuadas es un infierno.
Saludos.