Sounds to me like you might need to control that particular scenario programmatically.
From my understanding, you usually define uniqueness via an index but I don't believe they are conditional.
As for looking at it from the other end, i.e. creating a check constraint, I don't think you can access the whole table to see if a certain value exists - unless you can use a user defined function to confirm the existence of the the required value. Can't say I've tried it but it might be worth a look.
Regards,
Steve
Life without beer is no life at all
All beer is good, some beers are just better than others