OP, a lot of what you see may be related to what is described in this article: Behind the Windows 7 Memory Usage scaremongering.
The SuperFetch technology causes Windows to preload certain data if the OS detects that it is used regularly, even if there is no specific need for it at any given moment.
Though SuperFetch is a little less aggressive in Windows 7, it will still use a substantial amount of memorybut with an important proviso. The OS will only use memory for cache when there is no other demand for that memory. If an application needs lots of memory then Windows will discard cached data to make it available to the application. The rationale for this behavior is simple: memory that is currently not used by anything at all is memory that is wasted. Filling unused system memory with data from the disk just in case that data is useful is much better than leaving the memory unused. Why? Because if that data is neededand SuperFetch strives to ensure that the data it loads is likely to be neededhaving it already in memory means it can be used near-instantly, rather than having to wait tens of milliseconds to load it from disk.
Windows XP, with its "low" memory usage, does nothing like this, thereby "boasting" much higher free memory figures. But as should be obvious, such figures are nothing to boast about. Windows XP just allows a large proportion of system memory to go to waste.