Bascially, in order to get the browser to cache the images, I've found the best way is to load the *over* images at the bottom of the document, or anywhere that they will not be obtrusive, and size each preloader image to 1x1 pixels. Then the src is immediately available for swapping.
That way your rollover function or script can be dramatically less complex. Has anyone tried this? Do you know of any drawbacks to it?