I had not heard of the concept of shimming until I started looking at Windows compatibility and the problems that arise when trying to shoe horn applications from old operating systems to new ones. An application shim is a compatibility layer that fools a legacy application in to believing it's running in an older operating system. For example, a shim will tell a legacy application that it is running in an 16-bit color and that it's running with all the privileges Windows has to offer, when in actuality, it is not.
Shims intercept an applications attempt to modify the hard drive or registry that would ordinarily require root permissions, those requests are seamlessly redirected to temporary locations on the hard drive and registry. This means that unmodified legacy applications will run under Vista with the same poorly vetted code, but Vista (or Windows 7) will not complain about the obvious security ramifications of some of these calls.