La
caja css puede tener cuatro posiciones :
static, relative, absolute o
fixed static y relative te tomarán
margin:0 auto; O sea, tu div se centra "automáticamente" porque tiene una posicion relativa asignada.
absolute y fixed no te lo tomarán al
margin:0 auto; puesto que estas propiedades lo que hacen es quitarte la caja del flujo normal del documento, o lo que puesto en otras palabras sería que hacen que la caja absoluta o fija dependa de la posición de su ancestro más próximo posicionado en relativo, o bien de su primer ancestro static (que es la etiqueta <body>).
Espero haber sido claro, de todos modos puedes consultar el link que te pase donde lo explican en detalle.
Saludos.