Well in Win9x I know the defrag.exe program wouldn't touch the system registry files system.dat, user.dat and some other files that I don't remember at the moment. Also most defrag programs don't defrag the paging/swap file (win386.swp for Win9x) (pagefile.sys for WinXP), however they can defrag it or move it followed by a reboot which is something VoptXP can do.
Edit: For Win9x/Me there's a program called Defrag_to_shutdown that has a built-in option to defrag system files using a hidden defrag.exe switch that even Microsoft has never published to my knowledge.