Why is the conductivity of non-metals not equal to zero?
When we think of molecules we think of their molecular orbitals.  If we place these molecules into an ordered solid like a crystal, then the orbitals on adjacent molecules are close enough to interact and "extended" molecular orbitals are formed.  We call these extended molecular orbitals "bands". Typically these bands are "thicker" (spread over a wider range of energies) than molecular orbitals.  That is to say that because the energy of a molecular orbital in a molecule near an edge will be slightly different than the same molecular orbital in a molecule in the middle of the crystal, there is a spread of energies associated with a band.  Ultimately, because of this "thickening" of bands, all of the bands containing electrons overlap and form what is termed the valence band.  Similarly all of the empty bands overlap and form the conduction band.



(image source)

The valence band and the conduction band are analogous to the highest occupied molecular orbital (HOMO) and lowest unoccupied molecular orbital (LUMO) that exist in individual molecules.  The HOMO-LUMO separation is termed the "band gap" in a solid.

In metals the band gap is essentially zero with the valence and conduction bands overlapping; electrons move readily from the valence band to the conduction band. Electrons in the conduction band then move freely throughout the solid and give metals their characteristic conductivity. In insulators the band gap is very large and very few electrons have the thermal energy needed to be promoted to the  conduction band, hence there is basically no conduction.  Semiconductors lie in between these two extremes and thermal energy can promote some electrons (not as much as in a metal, but far more than in an insulator) to the conduction band, enough to have some conduction.



(image source)