My mistake, it's
\@makechapterhead and
\@makeschapterhead that need redefining, along with
\@chapter and
\@schapter, using the additional optional argument provisions of the
xargs package. This let you provide a third (optional) argument to put the epigraph in:
\documentclass[12pt]{report}
\usepackage{xargs}
\makeatletter
\renewcommandx{\@chapter}[3][1,3=\relax]{%
\ifnum \c@secnumdepth >\m@ne
\refstepcounter{chapter}%
\typeout{\@chapapp\space\thechapter.}%
\addcontentsline{toc}{chapter}%
{\protect\numberline{\thechapter}#1}%
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\chaptermark{#1}%
\addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\if@twocolumn
\@topnewpage[\@makechapterhead{#2}{#3}]%
\else
\@makechapterhead{#2}{#3}%
\@afterheading
\fi}
\def\@makechapterhead#1#2{%
\if\relax#2
\vspace*{50\p@}%
\else
\vbox to50\p@{\centering#2\par\vss}\bigskip
\fi
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\huge\bfseries \@chapapp\space \thechapter
\par\nobreak
\vskip 20\p@
\fi
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
\renewcommandx{\@schapter}[2][2=\relax]{%
\if@twocolumn
\@topnewpage[\@makeschapterhead{#1}{#2}]%
\else
\@makeschapterhead{#1}{#2}%
\@afterheading
\fi}
\def\@makeschapterhead#1#2{%
\if\relax#2
\vspace*{50\p@}%
\else
\vbox to50\p@{\centering#2\par\vss}\bigskip
\fi
{\parindent \z@ \raggedright
\normalfont
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
\makeatother
\begin{document}
\title{Optional epigraph above chapter titles}
\author{}
\maketitle
\tableofcontents
\chapter{A normal chapter title}
Stuff
\chapter{A chapter title with an epigraph above}[Entia non sunt
multiplicanda pr\ae ter necessitatem~--- William of Occam]
Stuff
\chapter*{An unnumbered chapter}
Stuff
\chapter*{An unnumbered chapter with an epigraph above}[The
hardest thing in the world to understand is the Income
Tax\\\leavevmode\hfill--- Albert Einstein]
\end{document}
///Peter