Originally posted by: munky
A memory leak is ... [must resist temptation to post jokes]... when a program terminates and fails to release the memory it was using. If that happens continuously, you will eventually run out of memory, have other programs crash, etc. I think xp is better at dealing with it than 9x, but I doubt it's 100% fixed.
You're talking about two different problems here. "Memory leak" is a poor choice of terms, since people who aren't programmers tend to use it to refer to multiple issues surrounding memory allocation/deallocation.
A "memory leak", technically, is a problem with a program where it allocates memory but never deallocates/releases it. If you look at a program like this with Task Manager, you'll see its memory usage gradually climb over time until it exhausts the resources of the system (at which point it will crash, since it will be unable to allocate any more memory). Obviously, performance will tank long before that, since it will start thrashing into virtual memory on the hard drive once it exhausts the physical RAM.
A second, related problem is that in Win9X, if a program crashes, any "leaked" memory it had allocated was never freed and returned for the OS to use. This would cause your entire system to gradually run out of RAM and become horribly unstable (one of the big reasons that Win9X needed to be rebooted every now and then). WinNT/XP/2K do *not* have this problem, so terminating and restarting a program that is leaking memory will fix it (at least temporarily). This is not technically a "memory leak" (since the allocated memory was already lost), but people refer to it by the same name sometimes, which is of course horribly confusing.
If CS:S/HL2 is leaking RAM on your system, you should file a bug report with Valve. If you look at the "performance" tab in Task Manager, your memory usage should stay more or less constant over time. If it slowly grows as you play, this is almost certainly a bug in the game engine.