It might be tricky for arbitrary n, but if you know beforehand that you need 3 words (and that the string will not contain \\, although this is easily changed by substituting another control sequence in the following code), this MWE should do the trick:
\documentclass{article}
\usepackage{etoolbox}% I need \ifblank to put \dots if something nonblank gets deleted
\makeatletter
\def\@threefirstwords #1 #2 #3 #4\\#5{%
#1 #2 #3\ifblank{#4}{}{#5}%
}
\edef\threefirstwords#1#2{\noexpand\@threefirstwords #1\space\space\space\noexpand\\{#2}}
\makeatother
\begin{document}
\threefirstwords{This is a test}{\dots}
\threefirstwords{This is a}{\dots}
\threefirstwords{This is}{\dots}
\threefirstwords{This}{\dots}
\end{document}
Ah, and this seems to have nothing to do with biblatex or even bibliographies.
xstring. – N.N. Nov 24 '11 at 07:12