WMI will work even for fast interfaces. SNMP won't work well for >=1Gbps interfaces since 64-bit counters aren't available on Windows and 32-bit counters overflow, nor will Performance Monitor Counters since they are only rates (bytes/sec) and not absolute counters ). You mention you have nsclient which can easily query WMI, so you could do this:
check_nrpe -H <host> -c CheckWMIValue -a 'Query=select BytesReceivedPersec, BytesSentPersec from Win32_PerfRawData_Tcpip_NetworkInterface where name = "<interface-name>"' Check:BytesReceived:=BytesReceivedPersec Check:BytesSent:=BytesSentPersec
Despite the name BytesReceivedPersec this is a 64-bit counter (Total Bytes) and not a rate (Bytes/sec).
 - Anything that is already in a rate form (bytes/sec) like the perfmon counters will not work well. For instance if you do your checks every 5 min, imagine you check an idle interface and get 0 BytesReceived/sec, then for 3 minutes you d/l a huge file and max out the interface, then it goes back to idle for the next min. When you poll for BytesReceived/sec you will get 0 again, even though for most of the time you were pulling a lot of data. You need an absolute counter of Bytes Sent/Received so you can subtract the first check from the second and divide by the time interval.