I'm trying to understand what goes on when I start up a linux server. My linux server has files /etc/rc2.d/S03cron, /etc/rc3.d/S03cron, /etc/rc4.d/S03cron, /etc/rc5.d/S03cron which should start the cron daemon 4 times. once at each of those run levels. why is there only one cron process on my system? did it try to start the process 4 times but only the first one works? does the system immediately go to runlevel 5? or does it go through S, 1, 2, 3, 4, 5 like that?
This depends on what init system you are using. In some init systems — old Solaris or SunOS, I think, although it's been way too long — the runlevels are cumulative in the way you are expecting. In others, including every Linux that uses the runlevel concept that I've ever heard of, they're independent descriptions of what things should be started or stopped at that runlevel (which can lead to messiness if you are going between levels and the K (stop) script is missing).