I have a program developed for Windows XP, but when I try to install it in Windows Vista, I get an error message saying that the SQL database (sqlite3) is read only. Is that due to a feature in Windows Vista?
It could be. A "regular" user has restricted access to the Program Files folder, and "naughty" programs that try to write their data there can give "access denied" and similar errors as a result.
You could try right clicking on the application and choosing "Run as Administrator" to see if this fixes the problem. (If it does, then look into whether it is possible to reconfigure it to store its data in a place it can write to without requiring admin rights)
Another possibility is that SQLite is not configured to allow your user account access - in which case you need to log into SQL as an administrator and grant your user account access rights.
Normal Users in Vista only get the Read permissions to files in the Program Files directory
The msi installer in Vista runs as a user with higher permissions that allows it to write the files. You'll need to either Run the program as administrator or adjust the permissions of the files it needs to write to.