Well, there are other workarounds for this besides using ssl. I wonder why I don't see them being used. For example one could encrypt the form with javascript using a public key and submit that. There seem to be enough javascript crpyto libs out there. Of course this would  have the minus of requiring javascript on the client side, but at least you don't need to buy a valid https certificate.