The problem I see much more often than broken packages is yum picking a mirror that is only partially updated and has inconsistent versions of things on it. Often I can try an update a 2nd time, get a different mirror, and everything works fine. If there was some way the mirrors could talk to yum about their current update status so yum could pick mirrors that were in a consistent state, that would help too.