Instead of using just one node that you switch validation on and off of you could use two nodes and conditional formatting.
Say you have two nodes such as
dataCanBeBlank
dataCannotBeBlank
You can use conditional formatting and a helper node to determine which node is displayed. This would be "hide control when _helperNode_ equals true".
The only tricky part about this is using two different nodes instead of two different controls referencing the same node. Another way to do it would be to do data validation within your code, instead of embedding it within the XML schema. When a user tries to submit or save the form you can check to see if the field can or cannot be blank and if it cannot be blank, make sure that it is not. If the code discovers that there are errors you could then pop a message box and warn the user.
I hope this helps, let us know if you have any more questions!
---------------
Matt Faus
InfoPath Dev Texas
Matt Faus / Microsoft InfoPath MVPQdabra® Software / Streamline data gathering to turn process into knowledge