Hardware
The goalie is a fairly complicated robot compared to the forward, though it is based on the same one-motor-per-wheel skid-steering chassis; however, this is now at right angles to the robot's front-back axis as the robot will mostly be moving from side to side. It has three sensors attached to it: a downward-facing light sensor, to read the colour of the ground (the pitch has a gradient from black at one end to white at the other, so the robots can work out which way to push the ball); a forward-facing light sensor, collimated with a 1x2 girder which also blocks the LED from confusing the other robots; a touch sensor on a scoop, to detect when the robot has caught the ball; a touch sensor on a bumper at the sides of the robot, to detect when the robot has hit the walls of the pitch; and a collimated backward-pointing light sensor, which I used in an (unsuccessful) attempt to get the goalie to use reflected IR signals from the RCX as a simple proximity sensor. In addition it has a motorised kicker to kick the ball away from its end if it comes close enough.
You can download a 3d model of the goalie in MLCad format.
Pictures

An overview shot from the side, showing the ball-detecting bumper and kicker at the front (the touch sensor is activated by the cam), the forward-facing light sensor (inside the stack of blocks - you can just see the blue above them) and the wall-detecting bumper. The large bundle at the back of the robot is a coiled wire - I did not have enough short ones and had to use one of the very long ones!

The bottom of the robot, showing the two motors and drivetrains and the round skids as well as the downward-facing light sensor. N.B. The front-to-back axis of the robot runs from left to right in this photo, as can be seen from the position of the ball-detecting bumper (on the left); the drivetrain is mounted perpendicularly to this axis.
Software
After being calibrated for its and the opposing team's ends, the robot scans from side to side across the pitch and stops behind the brightest thing it sees (which it assumes to be the ball). It tries (not terribly successfully at the moment) to track this as it moves from side to side, and at the same time if its front bumper sensor is touched then it kicks with the kicking mechanism. If during the course of its tracking it runs into the wall it stops until the ball moves away from the wall. If the downward-facing light sensor detects that it is more than 40% of the way from its own goal to its opponent's, then it turns round until it is facing its goal (as far as it can tell), drives forward until it hits a wall, reverses and turns back to its previous (side-to-side) posture before beginning the search routine again.
You can download the programme for the goalie in NQC format.