das liegt an der 100% höhe für den wrapper - gute browser halten sich daran, und lassen dann überlangen inhalt über dessen grenzen hinausfließen, die grenzen bleiben aber, und auch die ausrichtung des footers an diesen. du willst also eigentlich min-height für den wrapper auf 100% setzen, nicht height.
das kann dann wieder der IE nicht, aber der interpretiert ja zum glück height:100% wieder derart falsch, dass es für diesen fall "passt".
sorge also dafür, dass der IE height:100% für den wrapper bekommt, die anderen browser height:auto und min-height:100% (wie, bleibt dir überlassen: conditional comments, css-hack, etc.)
btw:
der standard-link zu dieser thematik ist natürlich
http://www.alistapart.com/articles/footers, auch mal einen blick wert.
edit: ach ja, mikey hat recht, padding nutzt du für wrapper ja auch noch - das muss natürlich raus, sonst passt es mit den 100% nicht mehr ...