Easy question, and many users have answered correctly, but why do I find a lot of worst practices everywhere?
It is far too common for many developers to write the logic in many places and store the data in more than one place without any of few constraints. They seem to think that they can handle the consistency much better and faster in the business logic than SQL server can with foreign key and check constraints. It may work fine in smaller systems with few developers, but when someone quit and a new developer comes in everything goes wrong and the data becames inconsistent.
On the other hand this "bad behavior" gives us SQL server consultants many assignments.
atabase Developer 2008
MCTS: SQL Server 2008, Implementation and Maintenance
MCSE: Data Platform