The reason is simple. Once you define a constructor (any constructor), the language assumes that the class needs some sort of initialization; that just copying the bits in its image won't be sufficient to create a new instance. And one of the important characteristics of PODs is that they can be memcpy'ed.
In sum, the compiler does not look at the contents of a class to determine whether it is POD or not (except to see if any of the members are PODS). It looks at whether you've defined anything special which might affect the initialization, assignment or destruction of those members.