First, I would like to point out that @Pedro's answer works just fine as long as you remove the \raggedleft from the re-definition (so +1). However, I find the way \addvspace used in moderncv rather unintuitive, so if I were to mimic what the class does with \parbox-es, I'd do it a little differently. Example:
\documentclass[11pt,a4paper,sans]{moderncv}
\usepackage[T1]{fontenc}
\usepackage{lipsum}% to show a \parbox in use
\moderncvstyle{casual}
\firstname{First}
\familyname{Last}
% Create our lengths
\newlength\boxsize
\newlength\boxgap
% Set them to current moderncv lengths
\setlength{\boxsize}{0.175\textwidth}% == maincolumnwidth
\setlength{\boxgap}{0.025\textwidth} % == separatorcolumnwidth
\newcommand\mycvitem[3][0.25em]{%
\strut% I prefer \strut; but it will be trumped by a
% sufficiently large value for #1 (default of 0.25em is from
% moderncv). In fact, I'd get rid of it entirely, since you use #1
% to set the space that *follows* the entry, which I find counter-intuitive
\parbox{\boxsize}{#2}%
\hspace{\boxgap}%
\parbox[t]{\dimexpr\textwidth-\boxsize-\boxgap\relax}{#3}
\par\addvspace{#1}%
}
\newcommand\mynewcvitem[3][0.25em]{%
\addvspace{#1}%
\strut% \strut can still be trumped, and we're keeping the default
% value just for fun; but now at least the space is added in
% a way that, to me, makes more sense
\parbox[t]{\boxsize}{#2}%
\hspace{\boxgap}%
\parbox[t]{\dimexpr\textwidth-\boxsize-\boxgap\relax}{#3}%
\par
}
% ... but really, I'd probably get rid of the optional argument entirely
\begin{document}
\makecvtitle
\section{Original}% <-- for comparison
\cvitem{Year}{Entry}
\cvitem{Year}{Entry}
\cvitem{Year}{Entry}
\section{Some examples}
\mycvitem[1cm]{Year}{\lipsum[2]}% <-- N.B.: #1 affects what follows
\mycvitem{2001--2013}{I am a dark knight}
\mycvitem{2001--2013}{No, I am a dark knight}
\mynewcvitem[1.5cm]{2001--2013}{I, too, am a dark knight}% <-- N.B. #1 affects what precedes
\mynewcvitem{2001--2013}{Who cares?}
\section{A New Section}% <-- Just to give a sense of the spacing
\end{document}
Edit. If you want instead to have a flexible size for the size of the 'year' box, what you could do is the following:
% command to set \boxsize; must be a valid length
\newcommand{\setboxsize[1]{\setlength{\boxsize}{#1}}
% now we set the default \boxsize to moderncv's 0.175\textwidth,
% but allow it to be reset as an optional argument
\newcommand\revisedcvitem[3][0.175\textwidth]{%
\setlength{\boxsize}{#1}%
\strut
\parbox[t]{\boxsize}{#2}%
\hspace{\boxgap}%
\parbox[t]{\dimexpr\textwidth-\boxsize-\boxgap\relax}{#3}%
\par
}
Then use it like so:
\revisedcvitem[1cm]{Year}{\lipsum[2]}
\revisedcvitem{2001--2013}{I am a dark knight}
\revisedcvitem{2001--2013}{No, I am a dark knight}
\revisedcvitem[2.5cm]{2001--2013}{I, too, am a dark knight}
\revisedcvitem{2001--2013}{Who cares?}
Or you can set it for a whole suite of \revisedcvitem's like so:
\boxwidth{2.5cm}% set \boxsize to 2.5cm
\revisedcvitem{Year}{\lipsum[2]}
\revisedcvitem{2001--2013}{I am a dark knight}
\revisedcvitem{2001--2013}{No, I am a dark knight}
\revisedcvitem{2001--2013}{I, too, am a dark knight}
\revisedcvitem{2001--2013}{Who cares?}
tabular, which kind of reminds me of bad HTML. I'd be inclined to skip the whole thing and write a new command using\parbox.... – jon Oct 29 '13 at 14:08