is there any way to add permissions to a state-machine workflow for approvals so that if you try and set a state on an item that you are not supposed to, the change gets reversed?
More specifically, can this be done in SPD2010 without using a Visio workflow or a custom InfoPath form?