My first rule of online surveys: don't make it harder for the respondents than it has to be.
I have yet to see an online survey that does it right. Amazing. Every time I'm asked to perform many extra, unnecessary clicks just because the survey company can't figure out how to put more than one question on a page.
One of the great things about the web is that we can get very detailed data and metrics on web usage. If you mail a survey out, you don't know why it wasn't filled out an returned. If you email a survey, while you may not learn why it isn't completed, you can at least learn where in the process the participant abandoned. And you can use that data to improve your survey tool.
I understand it is the job of these companies to find candidates for surveys, and no question they deliver value there. But they are overlooking an opportunity to improve their response rate for their customers at little or no cost.