Evidence of the influence of research on health policy is paradoxical. While there is scant evidence that research has had any impact on the direction or implementation of widespread health reforms, research on evidence-based medicine has dramatically increased, despite limited evidence that it has affected clinical practice. These developments have occurred in the context of a general decline in state intervention and provision and a post-modern questioning of researchers' authority. Models of the relationship between research and policy range from one where empirical research rationally informs decision-making, through research incrementally affecting policy, to an "enlightenment" or "infiltration" model, which may operate on a conceptual level. Health research that contributes to large-scale socio-political change may require more methodological pluralism and greater focus on key institutional structures. Case studies reviewed suggest that dissemination is enhanced if researchers involve managers and policy-makers in the development of the framework for and focus of research and if investigators assume a responsibility for seeing their research translated into policy. Public health research is more influential if topical, timely, well-funded and carried out by a collaborative team that includes academics. Evaluations are more influential if, in addition, they are commissioned by health authorities but based on local collection of data, and instruments and incentives to implement policy are available. In some areas, such as the recent policy focus on careers in the community, researchers were largely responsible for raising this policy issue, whereas in other areas, such as the relationship between unemployment and health, researchers are just one of the groups of experts making competing claims about causality. In conclusion, clear research findings are not always a passport to policy, but researchers can reframe the way health policy issues are seen, and collaboration with policy-makers initially can enhance implementation later.