Rules are fired when the value of a field changes, so if the field that your
rule is based on doesn't change, the rule won't fire. If it is an open rule,
it will fire when the form opens.
I use the second method mentioned in this post a lot for conditional default
values:
http://blogs.msdn.com/infopath/archive/2006/11/27/conditional-default-values.aspx
--
Hilary Stoupa
Visit InfoPathDev at http://www.infopathdev.com