How can I convince texcount that my use of \newcolumntype is perfectly valid syntax?
Tell texcount
to ignore the preamble:
%TC:ignore
\documentclass{article}
\usepackage{array}
\newcolumntype{C}{>{$}c<{$}}
%TC:endignore
\begin{document}
\begin{tabular}{C}
x\\
\end{tabular}
\end{document}
My preferred solution would be to do away with word counts, which are more or less meaningless, but failing that, since it doesn't like the {}
you can remove them.
This gives no warnings (but doesn't count inside the table)
\documentclass{article}
\usepackage{array}
\newcolumntype{C}{>$c<$}
\begin{document}
\begin{tabular}{c}
hello world\\
\end{tabular}
count this
\end{document}
gives
Encoding: ascii
Words in text: 2
Words in headers: 0
Words outside text (captions, etc.): 0
Number of headers: 0
Number of floats/tables/figures: 0
Number of math inlines: 0
Number of math displayed: 0
Or for more complicated example given in comments
\documentclass{article}
\usepackage{array}
\newcolumntype{C}{>$c<$}
\let\DOLLAR$
\let\DOLLAR$
\newcolumntype{E}{>{\DOLLAR}
r<{= {}\DOLLAR}@{}}
\begin{document}
\begin{tabular}{E}
x+y\\
\end{tabular}
count this
\end{document}
where defining \DOLLAR
twice keeps texcount happy.