The rise of Network Function Virtualization (NFV) has revolutionized the network services, by enabling the delivery of flexible and scalable solutions through Service Function Chains (SFCs). However, the virtualized deployment of SFCs increases their susceptibility to various types of failures in comparison to their physical deployment. Hence, a thorough understanding of the failure types, their reasons of occurrence and management methods is important. This will help us to achieve high fault tolerance in virtualized SFCs equivalent or perhaps higher to their physical counter parts while reaping the benefits of virtualization. This article attempts to present a systematic review of fault tolerance practices for SFCs. As an outcome, we propose a comprehensive taxonomy that categorizes the state-of-the-art in fault tolerance in SFCs based on failure types, and their pattern of occurrence, failure management approaches, and their evaluation metrics. A critical analysis of the state-of-the-art is performed to identify the key trends and research gaps. A conceptual framework to achieve high fault tolerance in SFCs is presented along with a discussion on future research directions.