Method 1 Apparently you don't have to give units to the node distance key. If you don't, it seems to take them as coordinates. So this scales the node distance to three times the default unit length, and the default unit length is the same as the default node distance.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\begin{scope}[node distance=3]
\node (A) {A};
\node (B) [right = of A] {B};
\end{scope}
\end{tikzpicture}
\end{document}
Method 2 after comments, consensus is that this is the preferred method It's possible to plot a point, read its coordinates, and set the node distance to that.
\begin{tikzpicture}[xscale=3]
\pgfpointtransformed{\pgfpointxy{1}{1}};
\pgfgetlastxy{\vx}{\vy}
\begin{scope}[node distance=\vy and \vx] % strange syntax here
\node (A) {A};
\node (B) [right = of A] {B};
\end{scope}
\end{tikzpicture}
Edit improvement that doesn't enlarge the bounding box invisibly from Andrew Stacey's comment. Thanks!
rotate=180on your example:Bis still to the right ofA. You can make external transformations apply to a node by using the keytransform shapebut then they apply to the node shape as well, which is not what is wanted. So there needs to be a key which says "apply the external transformation to the position but not the shape". – Andrew Stacey Nov 17 '10 at 10:38fit. This will transform a node so that it has both the correct size and the correct position to contain some given nodes. But what if I want to make a bunch of "containers" which are spaced enough to keep their contents apart? I have to draw the contents BEFORE the containers so that I can usefitto get the size, but then I can't reposition the containers. Nested{tikzpicture}seems to be the only way to get nodes within nodes like this. So, it would be nice if one could separate shape and position. – Ryan Reich Nov 17 '10 at 11:21