Why does the code
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{backgrounds,fit}
\tikzstyle{internal} = [draw, fill, shape=circle]
\begin{document}
\begin{tikzpicture}[scale=0.6,transform shape,node distance=1.4cm,semithick]
\node[internal] (0) {};
\node[internal] (1) [right of=0] {};
\node[internal] (2) [above right of=1] {};
\node[internal] (3) [above of=2] {};
\node[internal] (4) [below right of=1] {};
\node[internal] (5) [below of=4] {};
\node[internal] (6) [below right of=2] {};
\node[internal] (7) [right of=6] {};
\path (0) edge node[near end] (e1) {} (1)
(2) edge node[near start] (e2) {} (3)
(4) edge node[near start] (e3) {} (5)
(6) edge node[near start] (e4) {} (7);
\begin{pgfonlayer}{background}
\node[draw=blue!60,thick,rounded corners,fit = (e1) (e2) (e4)] {};
\end{pgfonlayer}
\end{tikzpicture}
\end{document}
with output

have a bad box (see the log file here), while this code
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{backgrounds,fit}
\tikzstyle{internal} = [draw, fill, shape=circle]
\begin{document}
\begin{tikzpicture}[scale=0.6,transform shape,node distance=1.4cm,semithick]
\node[internal] (0) {};
\node[internal] (1) [right of=0] {};
\node[internal] (2) [above right of=1] {};
\node[internal] (3) [above of=2] {};
\node[internal] (4) [below right of=1] {};
\node[internal] (5) [below of=4] {};
\node[internal] (6) [below right of=2] {};
\node[internal] (7) [right of=6] {};
\path (0) edge node[near end] (e1) {} (1)
(2) edge node[near start] (e2) {} (3)
(4) edge node[near start] (e3) {} (5)
(6) edge node[near start] (e4) {} (7);
\begin{pgfonlayer}{background}
\node[draw=blue!60,thick,rounded corners,fit = (e1) (e2) (e3)] {};
\end{pgfonlayer}
\end{tikzpicture}
\end{document}
(where "e4" is changed to "e3" in the 4th-to-last line) with output

does not have a bad box (see the log file here)?
(e2) (e4)in thefitdoesn't produce an underfull box either, while(e1) (e4)does. – Jake Jun 24 '12 at 20:04