Yeah the IP solution on it's own is problematic - dial-up users get a different IP each session, for example. Maybe you could rig some system that involves requesting the survey in with a valid email address, sending a link to that email address and maintaining a list of used email addresses. It's probably a lot of work, though and I think you're looking for an easy solution to a seemingly easy problem.
Unfortunately, the 'net just ain't built like that...