You probably already have something that is bound to port 80.
REUSEADDR is used for a server that might crash and needs to be able to restart and bind to the same port again. If SO_REUSEADDR is not used, then a crash does not properly free the socket, and it cannot be bound again for several minutes.
the other day i installed a piece of software called NetLimiter which basically manages your internet connection by only allowing software to use a certain amoutn of bandwidth, so basically i could be downloading from eMule whilst playing an on-line game.
Basically this program was taking over port 80 for some weird reason, the problem was fixed with a uninstall of the aforementioned software