I think you can play with parboxes.
On the second page of my example (the first one is only for comparison), you find three parboxes of the same height with different content alignment (top, center, bottom).
On the third page, you find two parboxes of the same height with top and bottom alignment (the first and the last of the page) with some text in the middle surrounded by \vspace*{\fill}s.
If this don't solve your problem, please edit your question and add a minimal working example (MWE).
\documentclass{article}
\begin{document}
\noindent This is for comparison.
\vspace*{\fill}
\noindent This has to be centered.
\vspace*{\fill}
\noindent Last line.
\newpage
% three parboxes of the same height with different content alignment
\noindent\parbox[][.333\textheight][t]{\linewidth}{This is the first line.
Some random text here.
Some other random text here.
Some other random text here.}
\noindent\parbox[][.333\textheight][c]{\linewidth}{This has to be centered.}
\noindent\parbox[][.333\textheight][b]{\linewidth}{Last line.}
\newpage
% two parboxes of the same height with different content alignment with some text between them
\noindent\parbox[][.4\textheight][t]{\linewidth}{This is the first line.
Some random text here.
Some other random text here.
Some other random text here.}
\vspace*{\fill}
\noindent This has to be centered.
\vspace*{\fill}
\noindent\parbox[][.4\textheight][b]{\linewidth}{Last line.}
\end{document}
