если сайт на asp.net, то можно попробовать
NoBot компонент из AjaxToolkit,
если нет, то можно использовать один из механизмов, который там используется: если пользователь нажал на кнопку «отправить» быстрее чем за N секунд, то пользователь бот, подбор времени N может спасти и от индусов, так как они не печатают в форму что-то по делу, а тупо читают капчу и укладываются допустим в 4 секунды, а нормальный пользователь напечатав сообщение укладывается, например, в 10 секунд.