For some of the same reasons that Mozilla does not release patches for Firefox 1.0. Rather than issue patches for older versions, the way to get fixes is to upgrade to the latest version.
Another reason: IT departments depend on the version-specific behavior for their in-house software. If the CRM program they depend on requires IE7-specific rendering bugs, then they make the decision not to upgrade to IE8 (it's much cheaper and easier than fixing the bug). If the changed behavior is back-ported to IE7, then they will not upgrade to the new version of IE7. Either way, the result is the same.
Similarly, home users who don't upgrade to IE8 are also unlikely to install patches to IE7. Since they aren't (and shouldn't) be marked as "critical" updates, they won't be installed automatically.
Microsoft did try to remedy this situation by including compatibility mode in IE8. At my job, our CRM program at my job depends on IE7 and breaks in IE8, but turning on compatibility mode fixes the problems. This doesn't really do anything for home users who don't upgrade, but at least companies have an upgrade path from IE7.