"Hasw" coded two nice modules for NForce2 boards; one for frequency changes, which is already included in mainline kernel, and one module for atxp1, with which you can change Vcore of the CPU on the fly. Get the atxp1 module and get it running. I still use version 0.3 of the atxp1 module, as I had some troubles with 0.6. It is advised to look into this thread to get some tips and help. Nice thing is, upcoming 2.6.13 kernel will have atxp1 driver included. So no more patching is required.
Next, we need a daemon which changes CPU frequencies automatically. As both the NForce2 cpufreq and atxp1 module don't interact, we need a specially patched daemon doing both. Either you try autoCpuFreq or the patch presented here for cpufreqd. I like the way cpufreqd handles rules, that's why I invested some time to patch it.
ebuild and patch
atxp1 module v0.3 (by Hasw)
As I am a Gentoo user, I provide an ebuild which fetches nvclock-0.7, cpufreqd-1.2.3, patches it and installs the modified version. Keep in mind the executable is still named cpufreqd, similarly the config file. If you don't use gentoo, you need to patch and compile cpufreqd by hand. Take a look into the ebuild. It is pretty easy to understand.
Warning: My patch only works for the SYSFS interface, as I don't know how to read out current CPU frequency via old /proc interface. Keep in mind that not all NForce2 boards have an atxp1. If you want to use integrated nvclock, be warned that it doesn't prevent you from destroying your card, as it doesn't check whether clock values are set too high! If you don't have a Nvidia Graphics card, you can still use 1.2.2 version. There are no other enhancements in 1.2.3. But 1.2.3 should also work for you, just leave out the nvclock parameters.
man cpufreqd.conf. This explains everything you need to know.
rc-update add cpufreqd boot
|[General]||vcore_path||Interface file created by atxp1 module which nvfreqd uses to change Vcore|
|[General]||vcore_default||As NForce2 boards only initialize the atxp1 on power-on, you need to put back default Vcore before reboot. nvfreqd sets Vcore to this value on exit|
|[Profile]||vcore||nvfreqd sets Vcore to this value, given in mV. Due to safety reasons range is limited from 1200 to 1850.|
|[Profile]||nv_coreX||nvfreqd sets core clock in MHz for Nvidia card X (X may be 0,1,2 or 3).|
|[Profile]||nv_memX||nvfreqd sets memory clock in MHz for Nvidia card X (X may be 0,1,2 or 3)|