My chemistry book says that delocalized electrons are the reason for electrical conductivity in a metal. However it says that nonmetals like sulfur, phosphorus and silicon have "low" conductivity. How can they conduct electricity if they have no delocalized electrons? Silicon has a giant macromolecular structure while sulfur and phosphorus have simple molecular structure. What causes them to conduct even for a little bit?
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.
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.
For an insulator to "conduct", basically an electrochemical reaction has to take place and travel through the bulk as a "defect". Above 0 K, all solids must contain defects, defects are able to move through a lattice, because they are more mobile, so all insulating solids have a finite conductivity, that generally grows with temperature.
In a semiconductor (see rons answer), the energy necessary to reach the "conduction band" is within the range available from thermal motion at moderate temperatures. In insulators, you need an energy that is so large it is able to break bonds. This is not so easily available, so the conductivity is very low.