I kinda like the cpu freq management in Linux now.
Powernowd is, if I remember correctly, and pure userspace program.. no hooks into kernel space.
If you want, and depending on which version of fedora your using, you can control the cpu speed manually thru the sysfs interface, which is how powernowd does it (I beleive).
To access the sysfs stuff you just have to go to /sys directory. It's full of 'logical' files that represent different information that is aviable for you to use. It's like /proc/ pretty much, but they want it to be something specificly designed to expose kernel stuff to userspace programs. Other things like 'HAL' and udev use it nowadays.
Well the specific directory, if I remember correctly (it's a bit fuzzy), is:
/sys/devices/system/cpu/cpu0/cpufreq/
You can go in their and see the different governers you have avaible and current frequency and such.
You can tell the kernel what specific cpu speed you want, if the hardware supports it and your using the userspace governer, by echo'ng the speed in hz you want... Some chipsets only support certain ranges or certain frequencies. So if you want a specific cpu, like the slowest setting for longest battery life, you can set it. (after you disable the powernowd deamon, of course)
something like:
echo -n 200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
I found more info here:
http://www.thinkwiki.org/How_to_make_use_of_Dynamic_Frequency_Scaling
Kinda neat.