Here's my understanding...
You need to do a MOFCOMP on your servers to start this change process off.
If you're using the legacy client agent, it will automatically update the SMS_DEF.MOF on the clients. We don't run legacy clients so I can't personally confirm this.
If you're using the advanced client agent you will need to create a package, program, collection and advertisement to run something like: MOFCOMP -class:forceupdate SMS_DEF.MOF to compile the new MOF file on each client computer. You can also perform a check of your MOF file by performing: MOFCOMP -check SMS_DEF.MOF
You should also consider adding a class for a MOF File Revision so that you know when your revisions are compiled successfully. Do a Google search for Monster MOF as that grouping of MOF updated has some good ideas.
We keep all of our MOF file edits in a separate file and only add one line to the end of our SMS_DEF.MOF file for servers and clients. The line we add is: #progra include ("SMS_SC.MOF");
For a Windows 2003 server, or remove the include for a Windows 2000 platform. You can also use whatever filename you want in quotes.
We don't update our secondaries because we don't have proxy MP's and they don't have a SQL database.
Lastly always test, test, test! And test some more.
Hope this helps a bit?
Mike.