I'm guessing that by the "'moderation' method" you mean actually have moderators that watch over the site and ban spammers. I can understand your dislike for such a system, but an alternative that a lot of sites use is peer moderation (e.g. StackOVerflow or Slashdot). This still means that spam gets posted, but it usually gets flagged or otherwise modded down so far that no one will ever see it.
Another tactic is a reputation system that requires a certain level of rep before one is allowed to post links. StackOverflow has a system like this as well (you can't even comment before you reach a certain level of reputation). This can be a little annoying at the beginning, but it's definitely effective at eliminating spam.
And as already mentioned by others, CAPTCHAs are probably the easiest anti-spam technique to implement. There are many libraries and APIs out there for generating CAPTCHAs, and you can even put the tests to good use by using reCAPTCHAs to help digitize books. The drawback is that automated CAPTCHA-deciphering algorithms are getting better and better, and the spammers without the ability to implement them can often farm the work of solving CAPTCHAs out to 2nd/3rd world workers.
Whatever method you choose, there's going to be some level of inconvenience for the user, but most of the common techniques are readily accepted by users and worth the trade-off to eliminate spam.