Sachverhalt: A. A.a Die 1954 geborene G._ war vom 23. November 1987 bis 28. Februar 1993 Kassiererin bei der Firma O._. Im Juli 1995 meldete sie sich bei der Invalidenversicherung an und beantragte Umschulung und eine Rente. Als Behinderung gab sie «Übergewicht 155 cm/124 kg» an. Mit Verfügung vom 22. November 1995 wies die IV-Stelle des Kantons Zürich das Leistungsbegehren mit der Begründung ab, aufgrund der Abklärungen sei eine leichte Tätigkeit zu 100 % zumutbar. Ab 1. Dezember 1995 arbeitete G._ als Kassiererin bei der Genossenschaft I._. Ab 21. Januar 1997 war sie zu 100 % arbeitsunfähig. Im Februar 1998 meldete sie sich erneut bei der Invalidenversicherung zum Leistungsbezug an. Als Behinderung gab sie Rücken- und Gelenkschmerzen, Atemstörung und hohen Blutdruck an. Mit Verfügung vom 29. Oktober 2002 sprach die IV-Stelle G._ ab 1. Januar 1998 eine halbe Rente (Invaliditätsgrad: 59 %) zu. Mit Verfügung vom 3. März 2006 setzte sie die halbe Rente rückwirkend auf den 1. Juni 2004 auf eine ganze Rente (Invaliditätsgrad: 100 %) hinauf. A.b G._ war im Rahmen ihrer Tätigkeit als Kassiererin bei der Genossenschaft I._ bei der Pensionskasse X._ berufsvorsorgeversichert. Mit Schreiben vom 17. Februar 2004 lehnte die Kasse die Ausrichtung von Invalidenleistungen der beruflichen Vorsorge ab. Zur Begründung führte sie an, aufgrund der IV-Akten sei die massgebliche Arbeitsunfähigkeit vor Beginn des Vorsorgeverhältnisses am 1. Dezember 1995 eingetreten. Gleichzeitig trat die Pensionskasse X._ wegen Nichtangabe bestehender Leiden in der Gesundheitserklärung vom 24. November 1995 mit sofortiger Wirkung vom überobligatorischen Vorsorgevertrag zurück. B. Am 11. September 2006 liess G._ beim Sozialversicherungsgericht des Kantons Zürich Klage gegen die Pensionskasse X._ erheben mit den Rechtsbegehren, die Beklagte sei zu verpflichten, ihr eine Rente der beruflichen Vorsorge (obligatorisch und überobligatorischer Teil) rückwirkend auf 1. Januar 1998 bei einem Invaliditätsgrad von 59 % und ab 1. Juni 2004 eine Rente bei einem Invaliditätsgrad von 100 % auszurichten zuzüglich Verzugszinsen ab Klageerhebung. Nach Eingang der Klageantwort zog das kantonale Gericht die IV-Akten bei und führte einen zweiten Schriftenwechsel durch. Mit Entscheid vom 20. Dezember 2007 hiess es die Klage teilweise gut. Es verpflichtete die Beklagte, der Klägerin mit Wirkung ab 1. Januar 1998 unter Berücksichtigung der gesetzlichen Bestimmungen betreffend ungerechtfertigte Vorteile eine BVG-Invalidenrente gestützt auf einen Invaliditätsgrad von 59 % zuzüglich Zinsen von 5 % ab dem 11. September 2006 auf den bis zur Klageeinleitung und ab dem jeweiligen Fälligkeitsdatum auf den seither fällig gewordenen Betreffnissen auszurichten, und die Klägerin, eine ihr allfällig ausgerichtete Austrittsleistung zurückzuerstatten (Dispositiv-Ziff. 1); die Prozessentschädigung an die Klägerin setzte es auf Fr. 1200.- (inkl. Barauslagen und Mehrwertsteuer) fest (Dispositiv-Ziff. 3). C. G._ lässt durch den Rechtsdienst Integration Handicap Beschwerde in öffentlich-rechtlichen Angelegenheiten führen mit den Rechtsbegehren, Dispositiv-Ziff. 1 des Entscheids vom 20. Dezember 2007 sei aufzuheben, soweit sie den Anträgen in der Klage nicht entspreche, und die Klage vollumfänglich gutzuheissen, Dispositiv-Ziff. 3 sei abzuändern und ihr eine ungekürzte aufwandgerechte Prozessentschädigung zuzusprechen, unter Gewährung der unentgeltlichen Prozessführung für das letztinstanzliche Verfahren. Die Pensionskasse X._ beantragt die Abweisung der Beschwerde. Kantonales Gericht und Bundesamt für Sozialversicherungen verzichten auf eine Vernehmlassung. 