Après des études à Londres (St Paul's School) et à Cambridge (Trinity College), il exerce la profession d'avocat (1951-1955), puis travaille dans une agence de production cinématographique (de 1955 à 1969). Il est surtout connu pour ses scénarios, particulièrement soignés, des films Le Limier (1972) de Joseph L. Mankiewicz, Frenzy (1972) d'Alfred Hitchcock et The Wicker Man de Robin Hardy.
Publié en français sous le titre Absolution, traduit par Jean Esch, Paris, Rivages, coll. « Rivages/Mystère », 1992, 234 p. (ISBN2-86930-586-9) ; réédition, Paris, Rivages, coll. « Rivages/Mystère » no 10, 1994, 237 p. (ISBN2-86930-586-9) ; réédition, Paris, Payot & Rivages, coll. « Rivages/Noir » no 1049, 2017
The Wicker Man (1978), en collaboration avec Robin Hardy, d'après le scénario de Shaffer
The Savage Parade (1963), version révisée sous le titre This Savage Parade en 1987
Sleuth (1970)
Publié en français sous le titre Le Limier, traduit et adapté par Jacques Collard, Martel, Éd. du Laquet, coll. « Théâtre de poche » 1994, 84 p. (ISBN2-910333-05-1) ; réédition, Paris, L'Avant-scène Théâtre no 1124, mise en scène de Didier Long, 2002, 118 p. (BNF39113018)
Murderer (1975)
Whodunnit (1977), d'abord connu sous le titre The Case of the Oily Levantine
Widow's Weeds (1986), d'abord connue sous le titre For Years I Couldn't Wear My Black