This might be interesting to SPCR folks who run a Linux system:http://lwn.net/Articles/528124/
It's a new driver in the works that allows enforcing a configurable amount of idle time for the CPU.
In a comment on the article, the code author notes:
We have a simple userspace app for example that can control a laptop temperature to just below the point that the fan would come on.
(it's very much prototype code at this point.. we're working on getting it more usable than on the one machine we ran it on).