If you wish all your {enumerate} to behave like this, you can patch the \item command to add a \leavevmode (which has the same effect here as the \mbox{} suggested by Caramdir) to automate all this. The patching can be done through the \apptocmd command from the etoolbox package which appends code at the end of a command. You cannot directly append to enumerate and item if you want to be able to use optional arguments (you need to patch \\enumerate and \@item for this). In the following code, I've also used the enumitem package to customize the lists (it allows to automatically have a), b), etc. for second level {enumerate}).

\documentclass{article}
\usepackage{enumitem}
\setenumerate[2]{label=\alph*)}
\usepackage{etoolbox}
\makeatletter
\expandafter\apptocmd\expandafter{\csname\string\enumerate\endcsname}{\apptocmd{\@item}{\leavevmode}{}{}}{}{}
\makeatother
\begin{document}
\begin{enumerate}
\item \begin{enumerate}
\item answer
\item answer
\end{enumerate}
\item answer
\begin{enumerate}
\item answer
\item answer
\end{enumerate}
\end{enumerate}
\end{document}
The code \apptocmd{\@item}{\leavevmode}{}{} appends to \item a \leavevmode which always starts a new line after an \item inside an {enumerate}. To restrict this to {enumerate} environments only, this code is itself append to \enumerate thanks to another \apptocmd.
A final note on this code: if you nest an {itemize} inside a {enumerate}, the \item will also have been redefined (if that's a problem, it's not difficult to patch {itemize} to keep the original definition of \item).