Even though the practice is dying out, there are still several extensions around that make changes to the core Joomla! files. This practice was much more common in Joomla! 1.0 than in 1.5, as 1.5 provides the ability to replace or override a lot of core functionally without having to make changes to the core code.
Most often, core hacks are used to provide enhancements or extra functionality to the user or access level systems within Joomla!, as these functions were very difficult to influence from outside the core until recently.
More commonly though, people are not hacking the core code, but making changes to the default templates included in Joomla!. Rather than acquiring a new template, they just make changes to one of the existing default ones.
Both of these practices, hacking the core and changing default templates can set site owners up for many difficulties. The most important one being that if we update our site to a newer version of Joomla!, then there is a good...