Is this a rule in the form's open rules? Or one that is on a field? If on a field, the rule will fire when the field changes, if the conditions on the rule evaluate to true. If you have conditions on your rule you may want to remove them and add them back in, one at a time, to see which one is causing unexpected results. Another thing I sometimes do is put each condition as a value in an expression box on my form so I can preview it and make sure they are all true when I expect them to be.
If the rule is in your open rules, again, you'll need to check your conditions. You can use the "Show a dialog box expression" action and put your conditions in the formula field for the expression to see what they are evaluating to....