A prefetch daemon? I suspect the only way to make it work properly and still have a lot of flexibility would be to have it create a virtual drive that is backed by your real hard drive/drives. Then you could intercept incoming I/Os at the driver level and see if the requested blocks are already cached.
However -- Windows wouldn't recognize memory allocated by such a process as part of the paging system. If you filled up all the 'free' memory with your own virtual swapfile, Windows might try to swap that out to disk when something else needs RAM. Also, you'd likely be duplicating a lot of data from the WinXP disk cache.
You really want it built into the OS so it can be managed properly.