My card (9600GT) has a very similar behavior to what you describe which I fixed during the night from yesterday to today...
It was a problem for me because the fan is awfully loud when its speed is unregulated.
Reading your post I suspect I might have put a finger on a more general issue that what I suspected, therefore you can help me if you'd kindly make a few tests for me. If your card registers behave in the same way as mine, it would mean that you should be able to control your fanspeed with a similar procedure, although it's always a little bit dangerous for the card.
After you leave X (when your fan speed climbs to 100%), it could be that the proprietary nvidia module is removed from your kernel, or it could be that it remains loaded. You can know this by trying
If nvidia is not loaded, then please try
and tell me if your fan speed goes down or not.
You can then unload the driver with the following command:
(still as root)
If you have a few more minutes to waste, you can then install the nvclock package through aptitude, and use it to compare the state of your GPU registers in different configurations.
1) X started and nvidia driver loaded
2) X not started and nvidia driver loaded
3) X not started and nvidia driver not loaded
In order to retrieve the values in your GPU registers, you can use the command
as root, and post the result here for each case 1), 2) and 3).
I read below you are using Stable. If that is the case, you should still be able to launch the the venerable free driver nv. Then, you should also be able to make the same study in two more cases:
4) X started and nv drivers loaded (need to adjust xorg.conf)
5) X not started and nv drivers loaded