I'm assuming you're coming from LabVIEW.
IterativeRobot is set up like telop and disabled were in LabVIEW. Each time a new packet is received from the driver station, it calls the appropriate method (telopPeriodic, etc). Each of the Periodic methods must return quickly, or else you will miss processing driver station packets. Initialization should go in the init methods, as those only get called once per transition to each mode.
SimpleRobot does not have any built in looping structure, you need to add it. It generates less code, which might be why it's called Simple, but since you need to add loops to it, it might not really be simpler.
RobotBuilder extends IterativeRobot with what they call the Command based model. The Scheduler calls you notice call Commands that you define that run based on triggers you define (such as pressing a button). This is described in much more detail in the RobotBuilder documentation.
http://wpilib.screenstepslive.com/s/3120/m/7882