UPDATE 2019-11-12: This article is still valid for Sitecore 9.x
The Sitecore field validators is a set of user-input validators that can be applied to either an item, a specific field type or a specific field on a specific item.
Sitecore comes standard with a set of validators, including broken links validation, email validators, max length validators and XHTML/W3C validation. You can find all validation rules at /sitecore/system/settings/validation rules:
Valid = Green, everything is fine
Suggestion = Bright Orange, hmm, take a look at this
Warning = Orange, you should do something about this
Error = Red, this is an error you know
CriticalError = Red, user is warned before saving
FatalError = Red, user cannot save item before validator is cleared
While returning Valid on a validation error makes no sense, the FatalError can be used to stop the user from saving an item before the issue is resolved, like in this example:
You can also (fairly easily) create your own validators. See this post about Sitecore 6 Validators.
Validation Rules should be applied when necessary. Do not overdo your validation rules as it might complicate the life of the people editing the website rather than helping them.
Remember that it is often quicker to clean up after bad editing instead of applying rule on rule on rule to stop them doing a specific thing. For example you might have a design that is good looking if the tile of the page is max. 30 characters. So you apply a rule saying that if the title is longer than 30 chars the user cannot save the page. But really, what would happen if the title is 31 chars? Or 40? Does the web site stop working or does the design fail? And what if the title contains a lot of small letters (i, l, j, …)? Then the title may look fine even with 35 chars.
Validations should support and help your editor, not hinder then in their work.