Everyone doesn't broadcast their blocks. You only broadcast your block if you win, and you broadcast as soon as you win. 10 minutes is only an average because people can win at any time. It's like everyone is drawing raffle tickets as fast as possible from the same giant pool of tickets, and whenever someone pulls out a winning value, they yell, "I won!".
When you solve a block, you send it to all your peers. They send it to all their peers, etc. Nodes don't broadcast blocks that they've already seen, so this eventually stops.
Whoever solves the next block gets to vote for which previous block they think is accurate.
Read:
http://www.bitcoin.org/bitcoin.pdfThe wiki pages "network" and "block" (down right now)