Also, what is the best way to enable non-free mail validation on registration forms?
David, I think you mean "fill" (as a superset of "prefill"), yes?
Make sure you search the forums first, since there are several threads on this. The latest Forms 2.0 code to force "work" or "corporate" addresses is here: MktoForms2 :: Force "Corporate" Email.
But note there may be unintended consequences of banning "free" addresses (actually a misnomer as some of these domains have paid plans): Results of restricting non-corporate domains in an email address field in forms