Sachverhalt: A. Am 2. November 2009 wurde der 1969 geborene X._ von C._, Facharzt FMH für Psychiatrie, im Sinne einer fürsorgerischen Freiheitsentziehung in die Klinik A._ eingewiesen. Er hatte sich schon zuvor verschiedentlich in psychiatrischen Kliniken befunden. Noch am gleichen Tag ersuchte er mit einer an das Bezirksgericht B._ gerichteten Eingabe um Entlassung. Mit zwei Eingaben vom 5. November 2009 stellten der Verein "Psychex" bzw. Rechtsanwalt D._ beim Bezirksgericht E._ in seinem Namen ebenfalls ein Gesuch um Entlassung aus der Klinik. Mit Urteil vom 10. November 2009 wies der Einzelrichter für das Verfahren betreffend fürsorgerische Freiheitsentziehung des Bezirks E._ das Entlassungsgesuch ab. Diesen Entscheid bestätigte das Obergericht (II. Zivilkammer) des Kantons Zürich durch Beschluss vom 23. Dezember 2009. B. Mit Beschwerde in Zivilsachen vom 2. Januar 2010 verlangt X._, den Entscheid des Obergerichts aufzuheben und seine Entlassung aus der Klinik anzuordnen; allenfalls sei die Sache zur Neubeurteilung der Fremdgefährdung (nach Beizug der Polizeirapporte) an die kantonale Instanz zurückzuweisen. Ausserdem ersucht der Beschwerdeführer darum, ihm für das bundesgerichtliche Verfahren die unentgeltliche Rechtspflege zu gewähren. Das Obergericht hat auf eine Vernehmlassung verzichtet. Mit Eingabe vom 5. Januar 2010 hat die Klinik zur Beschwerde Stellung genommen. Der Beschwerdeführer hat sich mit Eingabe vom 9. Januar 2010 zu dieser Vernehmlassung geäussert. 