I've just released a new Drupal module that uses an idea that I heard about a short time ago. The idea is to add a field to a form and hide it with css. If a bot fills in the field, reject the form without any notice (do bots really check for success?), without impacting the user experience. Other devices require extra user interaction. It will defend a Drupal site from comment spam, contact spam, bogus users, and can be added to other Drupal forms as well. Read the Drupal forum announcement or the project page.