Why does Windows Vista and 7 show it's using all of my memory in the Windows Task Manager?

The reason why windows vista and windows 7 show a very large physical memory usage is because of a built in feature called “Superfetch”.

What is Superfetch and why does it help my PC's performance and not degrade it?

SuperFetch has two goals: it decreases boot time, and makes sure applications that you use the most load more efficiently. SuperFetch also takes timing into account, in that it will adapt itself to your usage patterns.

Let's focus on decreasing boot times first. During the Windows boot process, the same files need to be accessed at different times. SuperFetch records which data and files need to be accessed at which times, and stores this data in a trace file. During subsequent boots, this information is used to make the loading of said data/files more efficient, resulting in shorter boot times.

SuperFetch performs more tasks to make the boot process more efficient. It also interacts with the defragmenter to make sure that the files accessed during the boot process are stored on the disk in the order they are accessed in.

SuperFetch' second goal is to make applications launch faster. SuperFetch does this by pre-loading your most often used applications in your main memory, based on not only usage patterns, but also on when you use them. For instance, if you have the same routine every morning (Chrome - Mail - Miranda - blu), SuperFetch will pre-load these into memory in the morning. If your evening routine is different (for instance, it includes Word, Excel, and Super Awesome Garden Designer), SuperFetch will adapt, and load those in memory instead during the evening.

SuperFetch for applications basically operates in the same way as the boot variant; it traces what files are accessed by an application during the first ten seconds of said application's startup, which can then be used to load the proper data in memory at appropriate times.

Windows has always included a built-in caching mechanism, but this one is quite limited. All it basically does is keep application data in memory after its termination, which allows applications to be loaded faster right after quitting them. This caching mechanism is helpful, but limited - for instance, a reboot obviously flushes all data in RAM. In addition, cached data will eventually drop out of RAM if other applications push it out of RAM.