Suggestions for simple .NET distributed caching solution

We have one server running Windows Server 2003 for our production web server. Our web site has different modules to it and each is ran within it’s own application pool. This makes caching a bit of a problem since each module has it’s own cache and often times multiple modules cache the same items. The problem is when an item in the cache is altered in one module, another module caching the same item cannot easily be refreshed.