I am taking the approach of helping the OP understand the code he's already found, to explain how to re-implement obsolete code, rather than just re-implenting it. FJRA's answer already does this perfectly well. The core of the code in the linked notebook is the following. It uses the obsolete InequalityPlot in the Graphics`InequalityGraphics` package.
VennDiagram[n_, ineqs_: {}] := Module[{i, r = .6, R = 1, v},
v = Table[Circle[r {Cos[#], Sin[#]} &[2 Pi (i - 1)/n], R], {i, n}];
{
If[ineqs == {}, {},
InequalityPlot[(v /.
Circle[{xx_, yy_}, rr_] :> (x - xx)^2 + (y - yy)^2 < rr^2)[[ineqs]],
{x}, {y}, Axes -> False,
Curves -> None,
DisplayFunction -> Identity][[1]]
],
v
}
]
The first main line of the function, defining v, sets up a set of circles, spaced out nicely according to the number of circles to include in the diagram.
The second main line users InequalityPlot to work out which bits of the overlapping circles to color in. This functionality has now been superseded by RegionPlot. So you can do something like the following. I increased the number of PlotPoints to ensure that the little corners were fully colored in.
Show[Graphics[Circle[{2, 1}, 1]], Graphics[Circle[{1, 1}, 1]],
RegionPlot[{(x - 2)^2 + (y - 1)^2 < 1 && (x - 1.0)^2 + (y - 1)^2 <
1}, {x, -3, 3}, {y, -3, 3}, PlotPoints -> 200]]

Converting the Weisstein code to something that is usable in version 8 is a little more involved. Nothing has to change about the bit that creates circles, but it would be more efficient to create the Circles and the inequality code from the same sequence.
Module[{i, r = .6, R = 1, v, p, n = 3},
Show@Table[
Graphics[Circle[r {Cos[#], Sin[#]} &[2 Pi (i - 1)/n], R]], {i, n}]]

So we can imagine something like:
Module[{i, r = .6, R = 1, v, p, n = 3, coords, circles, conds},
coords = Table[r {Cos[#], Sin[#]} &[2 Pi (i - 1)/n], {i, n}];
circles = Graphics[Circle[#, R]] & /@ coords;
conds = (x - #1)^2 + (y - #2)^2 < R & @@@ coords;
Show[circles,
RegionPlot[And @@ conds, {x, -n, n}, {y, -n, n}, PlotPoints -> 200] ]]

Now we need to set up the connections in the RegionPlot so that it shows the specified set-theoretic connections, not just a single Intersection for all of them. Consider the following. This replacement rule preserves the intersections and unions but distributes a range of inequalities into it. The use of RuleDelayed rather than Rule is essential for it to work.
testv = {x^2 > 1, y^2 < 2, z^2 < 1};
A[1] && (A[2] || A[3]) /. _[x_Integer] :> testv[[x]]
x^2 > 1 && (y^2 < 2 || z^2 < 1)
Putting it all together:
newVennDiagram[n_, ineqs_: {}] :=
Module[{i, r = .6, R = 1, v, p, coords, circles, conds, groupconds},
coords = Table[r {Cos[#], Sin[#]} &[2 Pi (i - 1)/n], {i, n}];
circles = Graphics[Circle[#, R]] & /@ coords;
conds = (x - #1)^2 + (y - #2)^2 < R & @@@ coords;
groupconds = ineqs /. _[x_Integer] :> conds[[x]];
Show[circles,
RegionPlot[groupconds, {x, -n, n}, {y, -n, n}, PlotPoints -> 200],
circles ]]
The reason I have put the circles twice in the final Show is that by putting them first, their placement and options determine the sizing of the final graphic. So you don't have to mess around removing the Frame from the RegionPlot or worry too much about its PlotRange. But then the inequality regions draw on top of the circles, obscuring any lines underneath. You could fix this with appropriate Opacity settings for the PlotStyle in the RegionPlot, but just drawing the circles a second time is just as easy and the final graphic can be exported to formats (eg EPS) that don't support Opacity.
newVennDiagram[3, A[1] && (A[2] || A[3])]
