I'm currently running NSClient++ on Windows SBS 2003 and am having horrendous problems with time-outs from Nagios3 generating a load of warnings, etc.
I'm pretty sure that the errors are caused by load spikes on the SBS as, from time to time, we've had issues with Outlook connectivity as well.
Please bear in mind that reconfiguring / upgrading or generally doing anything drastic on the SBS is not an option as it's the core of the business and works, granted not very quickly but it works.
Are there alternatives to NSClient++ that work reliably and securely on Windows? Is SNMP an option? If there anything I should look at on the server side?
SNMP is a good option too. You need to add this using windows Add/Remove components, see here. Be aware that when you install this it will stop other services such as IIS, smtp, etc. so do this off hours or during a maintenance window.
Myself, I have found NSClient preferable because it is easy to access all the windows performance counters.
How are your timeouts configured?
You can set timeouts on the nrpe-command (check_nrpe -t ...). You can also configure timeouts in nsclient++ (socket_timeout=...).
If you are having timeout issues due to load on the server, then I would submit that Nagios and the NSClient is working correctly. Other options will try to connect to the sever as well and have the same types of issues if it cannot respond due to load.
If you are getting an overload of notifications that you are positive will be going away, you may want to adjust the conditions that cause the warnings and the number of retries before the notifications are sent.