In a Clarity PPM Process Step when we have a post condition to check for a change in an attribute value before proceeding to next step, Clarity PPM does not check the condition but simply proceeds to the next step.
The negative expression "( Project.thisProject Work Status != Project.thisProject Work Status [Previous Value])" works as expected and is only evaluated in the event that the one specific field in this case '(Work Status)' is being changed. When this expression is in a running process, it is not looking at an update event and thus the value is evaluated with the current values.
Logically, it is advised not to use this type of expression in a step because the step does not know of an 'update' condition like the auto-start does. An alternative approach is to create a sub-process and put this condition in the auto-start Update event, being sure to set the flag not to start the process when other instances are started.