Why do compass chips in cellphones require frequent calibration?
3 Axis magnetometers have 3 channels all of which have an offset and gain. The offset changes with temperature and can change over time and are an unknown constant (especially the gains on each channel). This is caused by the sensor and the analog electronics that get the signal into the ADC. Not only are you calibrating the Magnetometer but the Accelerometer and\or Gyro as well. This is because all of the data from the sensors is fed into a Kalman filter which is a statistical filter. In short it updates its state based on the best information from the sensors. It's easy to calibrate if you have different information. It is easier (but not necessary) to calibrate 2 axes at a time so most phone calibration routines have you conduct two axis motions.
For information on drift and calibration in magnetic sensors see this.
Kalman filters are interesting and also when applied to Degree of Freedom (DOF) sensors.  Other sensors (not just the magnetometer) are subject to drift.