I am starting to look into Team System's Change Management system and found this awesome feature worth noting from a [rather old MSDN articleCheckin Policies

Using Visual Studio Team Foundation, a portfolio project administrator can associate custom or boilerplate policies with checkins and other events. A policy is a guideline that either provides operational context or that strongly suggests that certain conditions be met before performing an SCM operation.

The most common type of policy is a checkin policy. A checkin policy validates that a developer's changes comply with organizational requirements before checking in a set of pending changes to the repository. When a developer attempts to check in pending changes that are in breach of team policy, a policy warning is raised.

Note A project contributor can ignore policy warnings. However, a project administrator can request notification via e-mail when a policy warning is ignored.

You can think of policy warnings as an extension of build errors in Visual Studio. Policy warnings are team-specific source control integration guidelines that remind developers to perform certain actions prior to checking in their pending changes. A policy is a reminder, not a directive.