Below I show two possibilities; one using the .. controls .. syntax, and the other one, using the through point style implemented in Andrew Stacey's answer to Automatically connect nodes without overlapping other nodes or connections. Deciding which one gives better results will depend on several factors (and some of them subjective ones):
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\makeatletter
% code by Andrew Stacey: https://tex.stackexchange.com/a/27996/3954
\tikzset{
through point/.style={
to path={%
\pgfextra{%
\tikz@scan@one@point\pgfutil@firstofone(\tikztostart)\relax
\pgfmathsetmacro{\pt@sx}{\pgf@x * 0.03514598035}%
\pgfmathsetmacro{\pt@sy}{\pgf@y * 0.03514598035}%
\tikz@scan@one@point\pgfutil@firstofone#1\relax
\pgfmathsetmacro{\pt@ax}{\pgf@x * 0.03514598035 - \pt@sx}%
\pgfmathsetmacro{\pt@ay}{\pgf@y * 0.03514598035 - \pt@sy}%
\tikz@scan@one@point\pgfutil@firstofone(\tikztotarget)\relax
\pgfmathsetmacro{\pt@ex}{\pgf@x * 0.03514598035 - \pt@sx}%
\pgfmathsetmacro{\pt@ey}{\pgf@y * 0.03514598035 - \pt@sy}%
\pgfmathsetmacro{\pt@len}{\pt@ex * \pt@ex + \pt@ey * \pt@ey}%
\pgfmathsetmacro{\pt@t}{(\pt@ax * \pt@ex + \pt@ay * \pt@ey)/\pt@len}%
\pgfmathsetmacro{\pt@t}{(\pt@t > .5 ? 1 - \pt@t : \pt@t)}%
\pgfmathsetmacro{\pt@h}{(\pt@ax * \pt@ey - \pt@ay * \pt@ex)/\pt@len}%
\pgfmathsetmacro{\pt@y}{\pt@h/(3 * \pt@t * (1 - \pt@t))}%
}
(\tikztostart) .. controls +(\pt@t * \pt@ex + \pt@y * \pt@ey, \pt@t * \pt@ey - \pt@y * \pt@ex) and +(-\pt@t * \pt@ex + \pt@y * \pt@ey, -\pt@t * \pt@ey - \pt@y * \pt@ex) .. (\tikztotarget)
}
}
}
\makeatother
\begin{document}
\begin{tikzpicture}
\node [draw, circle, minimum width=1cm] at (0,0) (n1) {n1};
\node [draw, circle, minimum width=1cm] at (3,-1) (n2) {n2};
\node [draw, circle, minimum width=1cm] at (4,0) (n3) {n3};
\path [through point=(n2.east)] (n1) edge (n3);
\begin{scope}[xshift=6cm]
\node [draw, circle, minimum width=1cm] at (0,0) (n1) {n1};
\node [draw, circle, minimum width=1cm] at (3,-1) (n2) {n2};
\node [draw, circle, minimum width=1cm] at (4,0) (n3) {n3};
\draw (n1) .. controls ([yshift=-13pt]n2.south west) and ([yshift=-33pt]n2.south east) .. (n3);
\end{scope}
\end{tikzpicture}
\end{document}

n2to reachn3. It does not have to be a perfect path. – cacamailg Apr 06 '13 at 21:28