I looked at the 5-minute averages of ldiag for the CSAT at station 17 back to Oct 25, 18:00 MDT.  (Recall that ldiag = 1 if any of the bits in the CSAT diagnostic word is non-zero.)  It appears to be independent of wind speed and to occur for winds from NW to N and occurs more frequently with increasing temperatures (above 7 degC).  (Note that temperature and wind direction are themselves uncorrelated).  However non-zero ldiag is very occasional and is never greater than a five-minute average of 0.003, so this does not appear to be a serious issue requiring replacement of the sonic.  

Here is the Splus output of hist(dat("ldiag")) for that period.  $breaks are the boundaries of each 'bar' or 'class' of the histogram and $counts are the number of occurrences in each class.  For example, there are 16 occurrences of the 5-minute average of ldiag falling between 0.0002 and 0.0004.   Note that one occurrence in a 5-minute average is 1/(300 sec*20 samples/sec) = 0.0001666..., so the first histogram class between 0 and 0.0002 includes both zero and 1 occurrence in 5 minutes.

$breaks:

 [1] 0.0000 0.0002 0.0004 0.0006 0.0008 0.0010 0.0012 0.0014 0.0016 0.0018

[11] 0.0020 0.0022 0.0024 0.0026 0.0028 0.0030

$counts:

 [1] 1875   16    2   10    7    2    1    1    1    1    1    0    1    0    1

The frequency of occurrence of non-zero diagbits is 0.002% of the data, calculated as

sum(counts*breaks[-length(breaks)])/sum(counts) 

after increasing the number of classes in the histogram from 15 to 100 to improve the accuracy.