The first thing I did was rebuild/check my machine's hardware, and stress tested it fine.
I don't seem to have this problem on playing a limited number of steam linux games I own.
The reason why I have been changing target repeatedly was that I was kinda of used to creating temporary bitmaps on the fly as I used to do with Allegro4 with no problems (maybe because they were memory bitmaps rather than video ones??).
I have just recompiled and tested the game on my other machine, Xubuntu, Q6700, 9500GT 4Gb (311.113 drivers), and whilst it does seeming thrash one of the cores, it does not display the over heating problem. I am going to go out and buy and "new" different graphics card model to replace the 620GT in the other machine, and see if the issue persists.
If I have the time I will also boot the machine displaying the overheating with Windows, and recompile the game to see if the problem persists.
However I am being to suspect I have just discovered one of those rare combinations, of O/S, drivers, hardware and software configurations that triggers an unforeseen consequence.
As it is I will just take peoples advice, and rewrite my code so it is more idiot/me proof.
Oh yeah now I remember why I built the card graphics on the fly as I watch the MB usage for the game rise from 200Mb to 400Mb. So in answer to your question, why am I calling it that often, to save memory (thinking of mobile platforms). I suppose I could jigger the functions around to create the bitmaps before the event loop, but because of the way I have structured things it's quite an arse so I would rather not, so instead I have a separate image for each card.