It is the file system cache that matters here. You'll get quick load times when the assemblies can be loaded from cache instead of having to be read from the hard disk. The first load is slow, subsequent are fast. That explains the "cool down" too, the cached data gets replaced by other disk data. There's not much you can do about this, it has to come from disk one way or another. Using .NET 3.5 SP1 can help, it no longer verifies the strong name on trusted assemblies. That requires reading the entire assembly instead of just the manifest and selected bits of IL.
Old machines notoriously suffer from disk fragmentation, causing many read head seeks when loading a file. Defragging the disk can do wonders for cold start times. Defragging the paging file can be very important too, .NET JIT compiled code gets swapped to the paging file. Beware that most standard defraggers don't defrag the paging file.
This utility works well, use it after defragging the drive.
Hans Passant.