Next generation Web 2.0 communities and distributed P2P systems rely on the cooperation of diverse user populations spread across numerous administrative and security domains. Zero accountability via anonymous online identities and divergent interests result in selfish behavior that can disrupt or manipulate networks for personal gain. While "reputation systems" are recognized as a promising means to establish social control for such communities, developing reliable reputation systems remains a challenge. Several unaddressed threats still limit the effectiveness of reputation systems. Furthermore, most existing work on reputations has focused on accurate reputations for stable systems, but not examined the implications of integrating user reputations into scalable distributed infrastructures. The primary goal of this paper is to investigate and address the critical open challenges that limit the effectiveness of reputations. First, we identify a thorough taxonomy on reputation management, and use it as our framework to classify adversarial threats that compromise reliable operation of reputation systems. Second, we survey existing research to address these threats. Finally, we present our solutions to address the two leading reasons for erroneous and misleading values produced by reputation systems today, i.e., user collusion and short-lived online identities. We believe that this paper not only serves as an introduction to reputation systems design, but will also help researchers deploy reliable reputation solutions that contribute towards improving the performance of large distributed applications.