I believe that sometimes Postgres will not bother with an index scan on a table with only a few rows in it, as in that case a sequential scan is faster. Could it be that differing amounts of data in the table is causing the optimizer to use different plans?