It seems that when starting up the SMB service on OS X Mountain Lion Server, there is a race condition and some of the prerequisites may not get started up in time for SMB to properly initialise.
Fortunately, there’s a relatively easy fix over here:
Essentially, if you touch the SMB preferences plist, then launchd restarts SMB. If this is done after the servers’s started up properly, then SMB initialises and everyone can connect.
The link above shows how to put this in a launchd plist so that 60 seconds after the system is stated up, the SMB service is restarted and everyone’s happy.