Yes, the builtin Surveys in MOSS (2007 & 2010) aren't really that great. It's better in 2010 because you can use InfoPath to customize the survey (which is actually pretty nice) but in the end most surveys are too complex for the cookie cutter approach with the built in surveys.
In InfoPath you should be able to query the entire library and if the current user = a "created by" user then throw a message and keep them from saving the form.
However, you should also be sure to have a nice little web part that is filtered for "created by [me]" which would then show the user their survey when they got to the SharePoint site. If there is no survey they click on new, if there is a survey already they would see it in their web part.
Hope that helps
Ted