A vehicular ad hoc network (VANET) is a mobile ad hoc network in which network nodes are vehicles - most commonly road vehicles. VANETs present a unique range of challenges and opportunities for routing protocols due to the semi-organized nature of vehicular movements subject to the constraints of road geometry and rules, and the obstacles which limit physical connectivity in urban environments. In particular, the problems of routing protocol reliability and scalability across large urban VANETs are currently the subject of intense research. Clustering can be used to improve routing scalability and reliability in VANETs, as it results in the distributed formation of hierarchical network structures by grouping vehicles together based on correlated spatial distribution and relative velocity. In addition to the benefits to routing, these groups can serve as the foundation for accident or congestion detection, information dissemination and entertainment applications. This paper explores the design choices made in the development of clustering algorithms targeted at VANETs. It presents a taxonomy of the techniques applied to solve the problems of cluster head election, cluster affiliation, and cluster management, and identifies new directions and recent trends in the design of these algorithms. Additionally, methodologies for validating clustering performance are reviewed, and a key shortcoming - the lack of realistic vehicular channel modeling - is identified. The importance of a rigorous and standardized performance evaluation regime utilizing realistic vehicular channel models is demonstrated.