A PL/perl trigger function that disallows data changes in a user-specified list of table columns. Additionally a user can disallow updates to table columns by default and specify only a list of columns that can be updated.
The Deny updates triggerproject is a PostgreSQL Community project that is a part of the pgFoundry.
The pgFoundry page for the project is at http://pgfoundry.org/projects/deny-updates, where you can find downloads, documentation, bug reports, mailing lists, and a whole lot more.