Currently the minimum fan speed is set to be 2000rpm in the applesmc kernel module. This speed doesn't appear to change, and my CPU has reached temperatures over 60c whilst this was the case. I think that this is way too high, and it should be raise to 3000rpm to prevent overheating. A workaround can be done by switching to a root prompt and typing 'echo 3000 > /sys/devices/platform/applesmc.768/fan1_min'
This is not a problem with the applesmc driver: The minimum fan speed is originally set by the Apple firmware (2000rpm in your case, I think it depends on firmware version and model), applesmc just provides an interface to access and change this value.
So is there no way to manually increase this default value, or implement a linear relationship between fan speed and temperature like so: http://media.macupdate.com/images/screens/uploaded/JPG/23137_scr.jpg ?
Well you can increase the minimum value by putting the line above in one of your bootup scripts. For the "linear control", yes you can do it, in a user-land application (applesmc provides all the control interface you would need). (but this is getting off-topic for a bug report)
I honestly don't think this is off topic, as the bug (in a nutshell) is that due to fan control not working very well, apple laptops have a chance of overheating. Would getting linear fan control implemented be something to chase up downsream in Ubuntu, or upstream on the kernel? And am I right in thinking that there is no way to change this default so anyone doing a fresh install has 3000 (as opposed to 2000) as the minimum?
If, with default values set by the firmware, Apple laptops overheat, this is a hardware/firmware problem, not a Linux kernel problem. Linear control of fans will not be done in the kernel, this can be done in userspace however. Setting a higher default minimum value is not something that will be done in the kernel. Setting a higher fan speed is a personal choice (i.e. a noise vs heat tradeoff).