Was working on this in parallel, but looks like it's an extension of some other ideas already proposed... You should be able to create an indexed view using CHECKSUM to handle this.
As an example:
CREATE TABLE dbo.Test_Unique_Limit (
string_1 NVARCHAR(255) NOT NULL,
string_2 NVARCHAR(255) NOT NULL,
string_3 NVARCHAR(255) NOT NULL )
GO
CREATE VIEW dbo.Test_Unique_Limit_View
WITH SCHEMABINDING
AS
SELECT string_1, string_2, string_3, CHECKSUM(string_1, string_2, string_3) AS CHKSUM
FROM dbo.Test_Unique_Limit
GO
CREATE UNIQUE CLUSTERED INDEX Test_Unique_Limit_IDX ON dbo.Test_Unique_Limit_View (CHKSUM)
GO
I haven't used this method in production, so I can't vouch for either its performance or complete accuracy. You'll need to do your own testing there.
One thing that I will point out though... the fact that you're running into this issue should make you take a step back and consider whether or not the model itself is really as good as it should be. A unique index on the columns as you've described seems a bit odd.
Good luck!