Geometry for single page, redux

The first part of Werner’s answer won’t work if the sender’s address is also specified (with the \address declaration). In my opinion, it is more robust to patch the \opening command:

\documentclass[a4paper]{letter} % To avoid confusion, let me explicitly declare 
                                % the paper size.
\usepackage[T1]{fontenc}    % Unrelated to the question, but I like it.
\usepackage[
        margin=1.5in,
        showframe   % For this example only.
    ]{geometry}
\usepackage{etoolbox}
\usepackage{lipsum}

\address{Revinu Jitis Drofnats\\
    Department of Farm Ecology\\
    University of St.~Anford\\
    Haga Alto, CA~94321}
\date{\today}

% The patch:
\pretocmd{\opening}{\vspace*{0.5in}}{}{}



\begin{document}

\begin{letter}{
Department of Stuff \\
California Institute of Things \\
Pasadena, CA 91125}

\opening{Hiya!}

\lipsum[1-12]

\end{letter}

\end{document}

Here’s the first page of the output:

First page produced by the code


The flowfram package has no problem changing margins between pages. OTOH, it only defines the text area.

\documentclass{article}
\usepackage{lipsum}
\usepackage[margin=1.5in,showframe]{geometry}
\usepackage{flowfram}

\newflowframe[1]{\textwidth}{\dimexpr \textheight-0.5in}{0pt}{0pt}
\begin{document}
\lipsum[1-7]

\end{document}

My assumption here is that you want to use some letter-head that is already on a piece of paper...

If you really want what you're after and insist on using the letter class, then you'll have to use a hack. To replicate your output with the top margin on the first page 0.5" bigger than the rest, add \vspace*{0.5in} as part of a new \date declaration... even though you could use \today:

enter image description here

\documentclass{letter}
\usepackage{lipsum}
\usepackage[margin=1.5in,showframe]{geometry}
\date{\vspace*{0.5in}\today}
\begin{document}

\begin{letter}{
Department of Stuff \\
California Institute of Things \\
Pasadena, CA 91125}

\opening{Hiya!}

\lipsum[1-12]

\end{letter}

\end{document}

You can easily recreate your current setup without using the letter class. The code also follows naturally from the output, making odd letter-specific constructions/macros superfluous.

Here is a similar output under article:

enter image description here

\documentclass{article}

\usepackage{lipsum}
\usepackage[margin=1.5in,showframe]{geometry}

\setlength{\parindent}{0pt}

\begin{document}

\thispagestyle{empty}
\vspace*{0.5in}

\mbox{}\hfill\today

\bigskip
\begin{tabular}{@{}l}
  Department of Stuff \\
  California Institute of Things \\
  Pasadena, CA 91125
\end{tabular}

\bigskip

Hiya!

\medskip

\lipsum[1-12]

\end{document}