...
I've used functional indexes in the past to help deal with case sensitivity problems, but I like this approach better.
To use the citext type, you must first load extension (or functions) into your database. In version 9.1 or later:
CREATE EXTENSION citext [WITH SCHEMA foo] [NO USER DATA];
In versions before 9.1, you must add all the functions individually: citext.sql.