Ok so armed with the info that it works this way in AD, I've got it to work in CS. For anyone else wanting to do this, here's how it goes:
1. Create the rule you want to put a custom query on.
2. Export the rule
3. Open in a text editor, find the "SCOPE1EXPRESSION=ALL" property and change it to the required query text. For IsVia, not surprisingly it will be "|SCOPE1EXPRESSION=IsVia|"
4. Save and reimport the rule, selecting yes to clearing out the old rule.
And it works as expected...