I don't know if this will help: it used to work well in 10.3 and earlier, and quite often in 10.4.
Strange behaviour by System Preferences can often be fixed by trashing
com.apple.preferencepanes.cache in Home > Library > Caches folder. Trash
com.apple.preferencepanes.searchindexcache as well if you have it.
If this alone doesn't fix things after a logout/login, then trash them again (because it will have regenerated more bad files), together with
com.apple.systempreferences.plist in Home > Library > Preferences folder, and in the Home > Library > Preferences > ByHost folder, the files
com.apple.systempreferences.xxxxxx.plist, where xxxxxx = a hexadecimal numeric string.
You need to log out and log back in again for this to have any effect (or restart if you prefer).
If none of this helps, you will need to look in your log files to find out why your preference panes are not opening: the simplest way to do this is to use Console.
Open the Console application from /Applications/Utilities. It will default to showing the "Console Messages" and possibly the "system.log". Use the File menu if necessary to get both these logs open, and use the Broom tool to Clear both windows.
Now try to open System Preferences and see what appears in either of these windows. Copy and paste it here.
You may see a message saying "Crash report written to <pathname of crash.log>". If so, click on the "Logs" icon at the top left in the tool bar (preferably in another window). Then, depending on the <pathname of crash.log> in your message, look under either ~/Library/Logs or /Library/Logs by clicking the disclosure triangle, then click the disclosure triangle for "CrashReporter".
Find the crash log corresponding to your message and select it. It will open at the end of the log. Look back for the last line of asterisks in the log, then post everything after that to the end of the log.