Se você estiver usando o SQL Server 2008, um filtro de índice talvez seja sua solução:
http://msdn.microsoft.com/en-us/library/ms188783 .aspx
É assim que eu imponho um índice exclusivo com vários valores NULL
CREATE UNIQUE INDEX [IDX_Blah] ON [tblBlah] ([MyCol]) WHERE [MyCol] IS NOT NULL