The following is an excerpt from a message posted by Greg Wolking (previously of the PCMag forum) which I think you'll find interesting and factual IMHO:
Windows keeps as much stuff loaded in memory as possible, at least in part so that it doesn't have to keep wasting time reloading code modules, data, etc. from disk. Therefore, it is quite common to see very little "unused physical memory" until you have serious amounts of physical RAM installed in the machine. By "serious", I mean 128MB or more on a Win 98 system.
Windows will re-adjust its internal allocations when a running application needs memory. This includes discarding recently-loaded code modules (DLLs) that are no longer actually in use, shrinking the disk cache, discarding cached icons for the Start Menu/Desktop, etc.
There are also settings that you can "twiddle" to force Windows to discard unused code modules immediately, instead of keeping them loaded until the memory they occupy is required for something else. This is part of what some "memory recovery" utilities do -- they force Windows to discard unused modules, even though Windows will do that automatically when necessary. Thus, the benefit of using such a mechanism is rather illusory since it is forcing something to happen NOW which Windows would eventually do on its own anyway. Besides, memory manager programs running in the background are going to demand their share of resources too.
More accurately, all running programs use resources, some more than others. It's just that the ones that run "in the background" are the ones that so often "bite" us. 