I like preloading programs. Those tend to be reasonably often accessed, and of reasonable size. Though some might dislike it because they say, "I load a program, and part of it never gets modified, why not just keep only what I need paged into memory?" My gut says that this is wrong, but some good benchmarks would be useful.
I don't like guessing at files though - constantly guessing wrong would massively increase the size of your working set, causing you to make the swap problem worse for other programs.
You might achieve a modicum of sanity by setting limits on how much data/program you are willing to preload. So you increase the working set, but by a tunable amount.
Cheers,
Ben
PS About an email address for someone that I can think of who might do it, do you really want me to give you your own email address? :-P (My way of saying that nobody comes to mind.)