Using the powerful tikz-cd package you can easily create commutative diagrams with curved arrows; a little example (the package documentation contains other examples); notice the swap option to change the position of labels:
\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[row sep=3cm,column sep=2cm,shorten >= 4pt,shorten <=4pt]
F(x)
\arrow[bend left=40]{r}{F(f)}[name=UF,below]{}
\arrow[bend right=40]{r}[swap]{F(g)}[name=DF]{}
\arrow[bend left=30]{d}{A(x)}[name=D1,below]{}
\arrow[bend right=30]{d}[swap]{B(x)}[name=D2]{}
& F(y)
\arrow[bend left=30]{d}{A(y)}[name=D3,below]{}
\arrow[bend right=30]{d}[swap]{B(y)}[name=D4]{} \
G(x)
\arrow[bend left=40]{r}{G(f)}[name=UG,below]{}
\arrow[bend right=40]{r}[swap]{G(g)}[name=DG]{}
& G(y) \
\arrow[Rightarrow,to path=(UF) -- (DF)]{}
\arrow[Rightarrow,to path=(UG) -- (DG)]{}
\arrow[Rightarrow,shorten <=10pt,to path=(D1|-D2) -- (D2)]{}
\arrow[Rightarrow,shorten <=10pt,to path=(D3|-D4) -- (D4)]{}
\end{tikzcd}
\end{document}

Addendum: After the edit to the question:
You can still use "pure" TikZ in combination to tikz-cd; this gives you the possibility to achieve manual positioning (as was required) as well as to have consistency with the arrow and label style from tikz-cd.
For the crossing over edges, tikz-cd offers the crossing over style for \arrow (see first example below) and TikZ offers also mechanisms to achieve the same effect (second example below):
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[row sep=scriptsize, column sep=scriptsize]
& f^* E_V \arrow{dl}\arrow{rr}\arrow{dd} & & E_V \arrow{dl}\arrow{dd} \
f^* E \arrow[crossing over]{rr}\arrow{dd} & & E \
& U \arrow{dl}\arrow{rr} & & V \arrow{dl} \
M \arrow{rr} & & N\arrow[crossing over, leftarrow]{uu}\
\end{tikzcd}
\begin{tikzpicture}[commutative diagrams/every diagram]
\node (P0) at (90:2.8cm)
{$X\otimes (Y\otimes (Z\otimes T))$};
\node (P1) at (90+72:2.5cm)
{$X\otimes ((Y\otimes Z)\otimes T))$} ;
\node (P2) at (90+272:2.5cm)
{\makebox[5ex][r]{$(X\otimes (Y\otimes Z))\otimes T$}};
\node (P3) at (90+372:2.5cm)
{\makebox[5ex][l]{$((X\otimes Y)\otimes Z)\otimes T$}};
\node (P4) at (90+4*72:2.5cm)
{$(X\otimes Y)\otimes (Z\otimes T)$};
\begin{scope}[commutative diagrams/.cd, every arrow, every label]
\draw (P0) to[bend right] node[swap] {$1\otimes\phi$} (P1);
\draw (P1) to[bend right] node[swap] {$\phi$} ([xshift=-15pt]P2.north west);
\draw ([xshift=-10pt]P2.south west) to[bend right] node[swap] {$\phi\otimes 1$} ([xshift=15pt]P3.south east);
\draw ([xshift=25pt]P3.north east) to[bend right] node[swap] {$\phi$} (P4);
\draw (P4) to[bend right] node[swap] {$\phi$} (P0);
\draw (P0) to[bend left=60] ([xshift=-20pt]P2.north);
\end{scope}
\draw[white,-,line width=8pt] (P1) to[bend left] ([xshift=25pt]P3.north);
\begin{scope}[commutative diagrams/.cd, every arrow, every label]
\draw (P1) to[bend left] ([xshift=25pt]P3.north);
\end{scope}
\end{tikzpicture}
\end{document}

For the other requirement (an arrow from a node to a label placed on an arrow between to other nodes), a little example (again, swap was used to change the label position):
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzpicture}[commutative diagrams/every diagram]
\node (a) at (0,0) {A};
\node (b) at (3,0) {$B$} ;
\node (c) at (0,-3) {$C$};
\begin{scope}[commutative diagrams/.cd, every arrow, every label]
\draw (a) to[bend right] node[swap] (aux) {$f$} (b);
\draw (c) to[bend right] node[swap] (aux) {$g$} (aux);
\end{scope}
\end{tikzpicture}
\end{document}

amscdpackage? It is for commutative diagrams. – dustin Aug 10 '13 at 15:27