Comparative historical sociology seeks to provide an answer to this type of question: what causes certain kinds of large historical outcomes? And it proceeds, often, on the basis of controlled comparison of a small number of cases. Theda Skocpol's classic book, States and Social Revolutions: A Comparative Analysis of France, Russia and China, is a good example of the approach. So far so good. But what kinds of causes do CHS researchers typically look for? The method of comparison is often described in terms of Mill's methods of similarity and difference. Find cases with variation in the outcome to be explained and similar/different causal conditions; and then seek out patterns of co-variation that suggest that certain factors are necessary and/or sufficient conditions for the outcome to be explained. These factors are then said to cause the outcome. (Mill's approach to social research is described in Fred Wilson's entry on Mill in the Stanford Encyclopedia of Philosophy.)
This way of formulating the approach has fairly strong ontological presuppositions. Basically, it assumes that social causes are large, pervasive factors that obtain or fail to obtain in the multiple cases. For example, in explaining revolution the investigator might identify food crisis, population density, weak state institutions, and war as potential causal factors, and then compare the cases with respect to the variance of these factors. The comparative method assumes that large social units (societies, regions, social groups) are the operative units, and their causal properties are largescale, pervasive social conditions.
But what if our view of social causation is focused at a more disaggregated level -- not at the level of gross social conditions and structures, but at the level of lower-level processes and mechanisms? What if we thought that the action is really taking place at the level of the contingent unfolding of social processes at more local levels? This ontology wouldn't imply that the large social factors just mentioned are not part of the true causal story. But it would cast serious doubt on the expectation that there will be neat patterns of covariance across cases identified solely at this level. And yet this is exactly what Mill's methods require.
The turn to concrete social mechanisms as the unit of social analysis suggests that it is most fruitful to seek out explanations of outcomes as the "concatenation" of a set of common social mechanisms (Social Mechanisms: An Analytical Approach to Social Theory). And this implies that the traditional comparative method is not likely to succeed; there won't be a neat pattern of co-variation at the level of macro-characteristics and structures. So what is the alternative?
We might say that a credible alternative, still falling within a broad definition of "comparative historical sociology", is this: select a number of cases for detailed study. Uncover in some detail the processes and factors that appear to have led to the outcome (process-tracing). And arrive at generalizations by discovering that certain mechanisms or processes recur across multiple cases, and that large structural factors interact with these processes in recurring ways.
This is the approach that McAdam, Tarrow, and Tilly take in Dynamics of Contention. And it would appear to me that this approach permits an appropriate marriage between social ontology and social science methodology. The methodology is suited to the ontological insight that social phenomena are composed of lower-level social mechanisms and processes, and the outcomes are the contingent and path-dependent result of the concatenation of these mechanisms. There are no "laws of revolution" (or war, or civil strife); rather, there are a large number of social mechanisms that can be observed in many instances of these large social outcomes. These mechanisms can be rigorously analyzed, and we can explain outcomes (for example, the success of the Bolshevik revolutionary strategy) as the result of a concatenation of various of these mechanisms.