Short and simple:
We could be more subtle, but why? The "trick" here is to cause the preloading of the alternate image. But we don't want that alternate image to actually show. So we shrink it to a 1 pixel by 1 pixel image and then, on top of that, hide the pixel. Yet it will still get loaded by the browser at the same time the main image is loaded. And so, when we do the onmouseover, it will instantly appear.
style="border: none; width: 160px; height: 160px;"
style="visibility: hidden; width: 1px; height: 1px;"/>