Можно сделать отображение капчи после заполнения формы (аяксом подгружать).
UPD: Если без капчи: только проверкой событий от "мыши"/клавиатуры вместе со случайными скрытыми полями/чек-боксами, которые роботы будут заполнять в большинстве случаев.
Ну, и соответственно, можно проверить по DNSBL и спам-базам IP-шник и корректность вводимой информации в полях.