If anything it should be more likely to use a unique index than a non-unique index because that tells it that only one value will be returned (rather than some arbitrarily large subset of the table).
Can you post some actual code and plan EXPLAINations for us to look at?
If we can't figure out why it didn't use the original index in your insert we can post to the postgres mailing list.
It does use it for selects on openacs.org:
openacs.org=# explain select * from parties where email = 'mailto:dhogaza@pacifier.com';;
NOTICE: QUERY PLAN:
Index Scan using parties_email_un on parties (cost=0.00..5.98 rows=1 width=56)
EXPLAIN