The simple answer is that no such facility is provided by geometry. You cannot specify the top using top=top+2cm or the bottom using bottom=bottom+2.
When you want to increase the top by 2cm, presumably without affecting the headheight or the headsep lengths, you can do this by changing the topmargin.
\addtolength{topmargin}{2cm}
However, in general I would advice against all these, unless you really study how the page geometry is constructed. Normally LaTeX and packages start from the paperheight, subtract values for the head parameters, estimate a textheight that is an exact multiple of \baselineskip and then position the \footskip.
Recommendation use memoir or scrbook and read Chapter 2 of the memoir manual.
layoutpackage in the preamble, then the\layoutmacro will draw a picture of the various settings, you could then use these setting to compute the appropriate values (needs thecalcpackage):\newgeometry{top=1.0in+\voffset+2.0cm\relax}– Peter Grill May 8 '12 at 15:33bottomis save in the macro\Gm@bmarginso you can usebottom=\dimexpr\Gm@bmargin+2cm\relax. – Marco Daniel May 8 '12 at 17:12\texheightand get hundrends of underfull boxes:) – Yiannis Lazarides May 8 '12 at 17:45\documentclass{article} \usepackage{geometry} \geometry{showframe} \usepackage{kantlipsum} \begin{document} \kant[1] \clearpage \makeatletter \edef\tempa{\dimexpr\Gm@bmargin+2cm\relax} \makeatother \newgeometry{bottom=\tempa} \kant[1] \clearpage \restoregeometry \kant[1] \end{document}– Marco Daniel May 8 '12 at 17:53