I think i may have found a work-around using a web of if(IsEmpty()) statements, but I think I'd be interested to see if there's a easier way....there must be an easier way...
Make the fields referenced as input fields in the custom dialog global fields. Use the global fields instead of variables to perform the find. If a global field is empty, this leaves the criteria specified in the corresponding field in the table being searched empty and that item is ignored in the find.
This requires using a script that enters find mode without pausing and then set field steps transfer the values from the global fields to corresponding fields in the table being searched.
For examples of this kind of script, see: Scripted Find Examples