When a p (or m) cell is started, \everypar is not void, but it contains
\vrule\@height\ht\@arstrutbox\@width\z@\everypar{}
which is the code that provides the insertion of a strut at the beginning of the paragraph. With your code you're removing this.
\documentclass{article}
\usepackage{array}
\newcommand{\dohang}{\hangindent1em\hangafter1 }
\newcolumntype{R}{%
>{\everypar\expandafter{\the\everypar\dohang\everypar{\dohang}}\arraybackslash}%
m{3in}%
}
\usepackage[a4paper, total={7in, 9in}]{geometry}
\begin{document}
\begin{tabular}{|p{1.5in}|p{1.5in}|R|}\hline
first column & second column &
first line of third column \newline
This line is indented. \par
This one is not, but if it goes on and on and eventually wraps,
the next line is indented. \\\hline
etc. & etc. & etc. \\\hline
\end{tabular}
\end{document}

A different solution that avoids messing with \hangindent, \hangafter and \everypar, using LaTeX lists. The output is the same.
\documentclass{article}
\usepackage{array}
\newcommand{\dohang}{\hangindent1em\hangafter1 }
\newcolumntype{R}{%
>{\tablist}%
m{3in}%
<{\endtablist}%
}
\newenvironment{tablist}
{\list{}{%
\leftmargin=1em
\itemindent=-1em
\listparindent=-1em
\topsep=0pt
\parsep=0pt
\partopsep=0pt}\item[\strut]}
{\endlist\vspace{-\baselineskip}}
\usepackage[a4paper, total={7in, 9in}]{geometry}
\begin{document}
\begin{tabular}{|p{1.5in}|p{1.5in}|R|}\hline
first column & second column &
first line of third column \newline
This line is indented. \par
This one is not, but if it goes on and on and eventually wraps,
the next line is indented. \\\hline
etc. & etc. & etc. \\\hline
\end{tabular}
\end{document}
everyparmethod? – fpsvogel Jan 25 '15 at 02:59\everyparin several situations and playing with it is not easy. The\listmethod, on the other hand, uses standard LaTeX constructions. – egreg Jan 25 '15 at 10:20longtable. See here: http://tex.stackexchange.com/questions/336546/hanging-text-in-longtable – phx Oct 29 '16 at 13:54