Here's a fairly good CAPTCHA alternate that doesn't annoy users:
* Add an extra input name="botcheck" type="text" to your form and label it "Leave this field blank". * Use CSS to hide both the field and it's label. * Then, when the form is submitted, if anything is in that box, trash it. There's almost 100% chance that it came from a bot and not a real person.
Caveat: This only works as long as you're small enough to not be target specifically.