Here's a really interesting thing though. On one of the "memory refresher" programs that I tested, under W2K SP2, that had a visible scrolling graph of allocated RAM and pagefile usage - it appears that Windows has it's own internal "low water mark", in terms of free RAM pages that should be available, at the bare minimum, at any given time to service memory allocation requests. You of course can set whatever particular low-water-mark you want in the memory-refresher program, under which (depending on the update frequency), it will force-page out the contents of RAM, until the high-water-mark is reached. Then it idles until it detects that free RAM is under the low-water mark again. The drawback is, during the forced-pageout, the system definately suffers in terms of response times. Whereas, if Windows simply flushed pages to the pagefile during idle-time, system responsiveness isn't impacted much at all. But it seems that during excruciatingly low-memory (thrashing) conditions, Windows doesn't swap pages out to the pagefile as fast as it possibly could, causing programs with pending memory allocations to pause, and impacting their response times.
I know that this has digressed slightly off-topic here, but the way I see it, the _ideal_ solution, would be to somehow set Windows' own internal free-RAM low-water mark to something higher, on my system it was around 4MB, for a 256MB system with a 768MB pagefile. The other one would be to monitor interactive application responsiveness, or alternatively latency for fulfilling memory-allocation requests, such that if application responsiveness was negatively affected by "idle time page-out", that Windows would switch temporarily to a more "active" page-out algorithm, even if it could impact I/O performance of other running tasks at the time. Another idea, would be to use idle I/O time, to speculatively page-out pages, based on their LRU timestamps, such that, assuming sufficient free pages in the pagefile, the memory pages could be written out to the pagefile, before they would absolutely need to be paged out, and then they could simply be flushed from RAM instead of paged, when the RAM was called for. Then again, maybe Windows already does this as part of the "idle time" page-out algorithm.