The index is used only if scanning the index is faster than scanning the table itself. Trying the index only with a couple of records isn't good.
Try inserting some hundred records inside and VACUUM the database after.
When you vacuum the database you are updating the statistics table used by the query optimizer. The query optimizer will choose to use an index when it found that it worths.
Not using the index in OR queries was some-time ago a bug in PostgreSQL 6.1 if my memory is good. Think that has been solved in new releases, am I wrong ?
Constantin Teodorescu
FLEX Consulting Braila, ROMANIA