Automatic status propagation

Redmine is great, we had an idea on how to make it greater by automating some status propagations. Two easy examples are from a "New" status to an "Assigned" status when someone assigns themselves to a task. And propagating to a Closed status when someone sets a task to 100% Done. Perhaps this could be configurable to in the Issue Statuses settings to associate a field value (like non-blank or equal to 100%) with each status.