System Generated Commands vs User Generated Commands (Keeping Track of When User Overrides System)

See Design Pattern: Manual Trigger Detection for a couple additional ways to do this.