Determining the reason why a .net windows-service won't start
The Application event log should contain details of any .Net exceptions that occurred during service startup. This may help diagnose the problem.
Alternatively, you can add some debug code (or trace code) to your application startup and use debugview from Sysinternals to see where it gets to.
So I figured this out, thanks to looking at the event log from @Matthew Steeples and @Ben M.
The issue was the service writes to the event log on start when it connects up to a server; however, this machines event log was full, so when the service tried to write to the event log it failed, causing it to throw an exception which again couldn't be written to the full event log.
So case in point, if you are writing to the event log make sure it isn't full or that you are handling the exception!