pietlinden, just to let you know what I did and it works fine, I used a trigger instead of a sp. The only problem I have now is trying to find out how to make the exception message appear friendlier to the user. This is the trigger I used.
ALTER trigger [dbo].[tri_EmailAddress] on [dbo].[Property]
for insert as
if exists (select * from [Property] od
join (select distinct EmailAddress, Free from inserted) i
on i.EmailAddress = od.EmailAddress
group by od.EmailAddress having count (*) >2)
begin
raiserror ('Cannot have more than ten free listings', 16, 1)
rollback tran
return
end
Thanks again for pointing me in the right direction.