Here's one possibility:
\documentclass{moderncv}
\moderncvtheme{classic}
\usepackage[scale=0.9]{geometry}
\newlength\Tripleitemmaincolumnwidth
\newlength\tripleitemmaincolumnwidth
\AtBeginDocument{%
\setlength\tripleitemmaincolumnwidth{%
\maincolumnwidth-2\hintscolumnwidth-2\separatorcolumnwidth}%
\setlength\tripleitemmaincolumnwidth{.333333\tripleitemmaincolumnwidth}%
}
\newcommand*{\cvtripleitem}[7][.25em]{%
\cvitem[#1]{#2}{%
\begin{minipage}[t]{\tripleitemmaincolumnwidth}#3\end{minipage}%
\hfill
\begin{minipage}[t]{\hintscolumnwidth}\raggedleft\hintstyle{#4}\end{minipage}%
\hspace*{\separatorcolumnwidth}%
\begin{minipage}[t]{\tripleitemmaincolumnwidth}#5\end{minipage}%
\hfill
\begin{minipage}[t]{\hintscolumnwidth}\raggedleft\hintstyle{#6}\end{minipage}%
\hspace*{\separatorcolumnwidth}%
\begin{minipage}[t]{\tripleitemmaincolumnwidth}#7\end{minipage}%
}%
}
\name{John Doe}{}
\begin{document}
\section{Computer skills}
\cvdoubleitem{category 1}{XXX, YYY, ZZZ}{category 4}{XXX, YYY, ZZZ}
\section{Computer skills}
\cvtripleitem{category 1}{XXX, YYY, ZZZ}{category 2}{XXX, YYY, ZZZ}{category 3}{XXX, YYY, ZZZ}
\end{document}
You can use \cvtripleitem
in a similar fashion to \cvdoubleitem
, but with two additional mandatory arguments (for the third item in the row).
Take into account that, depending on the document page layout, the space reserved for the items might be too narrow.