I used to think that Sonic the Anonymous Hedgehog's idea of a survey was a terrible idea - it didn't actually fix anything, and I suspect most folks asking off-topic questions here are drivebys.
On the other hand, we end up closing a few questions a day from people wandering in lost, asking utterly off-topic questions, and it's at least mildly annoying. It is sort of a problem, at least in terms of noise. I sometimes try to point them to the help center and the tour page but I've occasionally seen people post different off-topic things twice. It would be nice to help them know what they're doing, even if we don't all the time – I mean people with no accounts elsewhere, or even people posting off-topic questions more than once seem fishy.
I'd actually like to suggest something that might work in the context of other sites as well. Throw users who meet certain criteria a single question with say 4 options, with answers somewhere on the help.
If a user has no accounts elsewhere or has a question previously closed for an appropriate close reason (not being about the SE network) – triggering such a test makes sense.
I'd suggest scaling it if there's more than one closed question with no accepted questions. Maybe one additional question for each additional closed question. It's also likely slightly less painful and more annoying than a post ban, but I'm not sure if that's good or not.
It'd be zero friction for a new user, and only affects users with no real reason to be on meta (unless they somehow have issues registering at all, and doesn't throw a big barrier of entry for an actual new user).
Add a little explanatory text "We've noticed that you have no account on other SE sites and would like to confirm you know what this site is for." or "We've noticed your contributions on the site have been closed in the past – and would like to ensure you know what this site is for." and it's probably just a pop up.
Depending on the criteria, it might also work on other sites as a means of quality control or simply in addition to captcha type stuff.