I was customising some TFS 2008 Work Items, and I wanted to automate it so that the System.State value changes to a new state value when a custom field is changed to a specific value.
Quite simply, you can't do this. The System.State field cannot have a value copied into it, or have other actions done to it.
If you are serious about automating like this, the only workaround is to create a custom program that listens for a particular event or custom action, and then use the rich TFS API and programmatically change the value of System.State.
The same applies to System.Reason.