How can I change the colour of the marquee crosshair as it becomes invisible on a white background and I have to guess as to its actual position? I thought it would auto-contrast such that it's visible against any background. I have looked at lots of options but cannot find anything useful.
There is no direct method to alter cursors within Photoshop (any version as far as I'm aware). A screen with a higher pixel density typically helps. However, if you are running Photoshop CS5 or 5.0 or 5.5 that won't really matter as none of those versions are anywhere near "retina" aware.
There may be third party operating system add-ons to alter cursors available somewhere for your OS. But you would need to search based upon your specific system specifications and compatibility.