All molecules have dispersion forces regardless of polarity. (This occurs due to temporary dipoles which occur randomly in molecules).
Polar molecules also experience dipole forces which is basically the attractive force between adjacent polar molecules. Hydrogen bonding is a strong type of dipole force caused by differences in electronegativity.
I disagree with the last point. Hydrogen bonding only really occurs between hydrogens and one of N, O or F. The condition is that the hydrogen must be covalently bonded to a N, O, F, the N, O, F must be covalently bonded to another hydrogen and the N, O or F must have a lone pair available for bonding. A hydrogen bond is then a bond in which the N, O or F uses one of its lone pairs to make a 'bond' with the hydrogen atom. As the N, O or F is relatively negative from its bond to the hydrogen and because the hydrogen is positive from its bond with a N, O or F, there is a rather strong attraction. Also, N, O and F are small, which allows the atoms to get closer to hydrogen atoms.
The classic example of why hydrogen bonding requires N, O or F only and not any electronegative atom is seen by comparing ammonia, hydrogen fluoride and hydrogen chloride. Ammonia boils at 240 K. Anhydrous HF boils at around 293 K and HCl boils at 188 K. HF and HCl are in the same group, but due to the small size and higher electronegativity of the fluorine atom, HF has a MUCH higher boiling point. NH3 and HCl have atoms with similar electronegativities, but the N-H hydrogen bonding is stronger than the H-Cl dipole interaction, so again there is a large difference in boiling point.