Sachverhalt:
A. A.a Die 1951 geborene S._ arbeitete vom 1. April 1973 bis 31. Januar 1998 bei der Firma F._ AG, und war so bei der Berna, Schweizerische Personalfürsorge- und Hinterbliebenen-Stiftung (Rechtsnachfolgerin: Sammelstiftung BVG der Allianz Suisse Lebensversicherungs-Gesellschaft; nachfolgend: Allianz Suisse) berufsvorsorgeversichert. Nach Arbeitslosigkeit war sie vom 8. Juni bis 15. Oktober 1998 bei der Firma M._ AG tätig. Ab 1. Juli 1999 bis 31. Oktober 2000 arbeitete sie bei der Firma C._ AG. Im Anschluss daran war sie bei der Firma E._ AG, (1. November 2000 bis 30. April 2001) und der Firma H._ AG, (1. Mai bis 30. November 2001) beschäftigt. Zuletzt arbeitete sie vom 1. März bis 3. April 2002 bei der Firma B._ AG.
Am 15. September 2003 meldete sie sich unter Hinweis auf einen Diabetes I und ein psycho-physisches Erschöpfungssyndrom zum Bezug von Leistungen der Invalidenversicherung an. Mit Verfügung vom 23. Juni 2004 sprach ihr die IV-Stelle des Kantons Schaffhausen mit Wirkung ab 1. September 2002 bei einem Invaliditätsgrad von 85,66 % eine ganze Rente zu. Dabei stellte sie fest, die Versicherte sei seit mindestens 19. Mai 2001 (Beginn der einjährigen Wartefrist) in der Arbeitsfähigkeit eingeschränkt.
Die dagegen erhobene Einsprache der Winterthur-Columna, Stiftung für die berufliche Vorsorge (Vorsorgeeinrichtung der Firma H._ AG) mit dem Rechtsbegehren, es sei der Beginn der Wartefrist auf das Jahr 1996, spätestens 1997, festzusetzen, wies die IV-Stelle mit Entscheid vom 17. Dezember 2004 ab. Auf die Beschwerde der Stiftung trat das Obergericht des Kantons Schaffhausen mit Entscheid vom 29. Juli 2005 nicht ein, weil der Entscheid der IV-Stelle für die Winterthur-Columna als allenfalls zuständige Vorsorgeeinrichtung keine Bindungswirkung entfalte und sie mangels Berührtseins nicht zur Beschwerde legitimiert sei.
A.b S._ ersuchte die Allianz Suisse um Ausrichtung von Invalidenleistungen aus der beruflichen Vorsorge, was jene mit der Begründung ablehnte, seit der Beendigung des Arbeitsverhältnisses mit der Firma F._ AG am 31. Januar 1998 habe keine ununterbrochene Arbeitsunfähigkeit bestanden, sondern die Versicherte sei namentlich während des Beschäftigung bei der Firma C._ AG für längere Zeit voll arbeitsfähig gewesen.
B. S._ liess beim Sozialversicherungsgericht des Kantons Zürich Klage einreichen und beantragen, die Allianz Suisse sei zu verpflichten, mit Wirkung ab dem 1. Juli 2001 (eventualiter 1. September 2002) eine volle Invalidenrente von jährlich Fr. 33'505.- nebst Verzugszins ab Klagedatum zu bezahlen; subeventualiter sei die für die Leistung an die Klägerin zuständige beigeladene Vorsorgeeinrichtung zu verpflichten, nach Massgabe ihres Vorsorgeplanes eine volle Invalidenrente auszurichten. Soweit es darauf eintrat, wies das kantonale Gericht die Klage mit Entscheid vom 31. Oktober 2008 ab.
C. Mit Beschwerde in öffentlich-rechtlichen Angelegenheiten lässt S._ die vorinstanzlich gestellten Rechtsbegehren erneuern; eventualiter sei die Sache zur Neubeurteilung an die Vorinstanz zurückzuweisen.
Die Beschwerdegegnerin beantragt Abweisung der Beschwerde; Vorinstanz und Bundesamt für Sozialversicherungen verzichten auf Vernehmlassung.
Von den beigeladenen Einrichtungen beantragen die Stiftung comPlan (Vorsorgeeinrichtung der Firma C._) die Abweisung und die Stiftung Auffangeinrichtung BVG die Gutheissung der Beschwerde; die Winterthur-Columna Sammelstiftung BVG und die Swisscanto Sammelstiftung der Kantonalbanken (Vorsorgeeinrichtung der Firma E._ AG) verzichten auf eine Stellungnahme.
Erwägungen:
1. 1.1 Invalidenleistungen der obligatorischen beruflichen Vorsorge werden von derjenigen Vorsorgeeinrichtung geschuldet, welcher der Ansprecher bei Eintritt der Arbeitsunfähigkeit, deren Ursache zur Invalidität geführt hat, angeschlossen war (Art. 23 BVG; seit 1. Januar 2005: Art. 23 lit. a BVG). Die Leistungspflicht setzt einen engen sachlichen und zeitlichen Zusammenhang zwischen der während der Dauer des Vorsorgeverhältnisses (einschliesslich der Nachdeckungsfrist nach Art. 10 Abs. 3 BVG) bestandenen Arbeitsunfähigkeit (Einbusse an funktionellem Leistungsvermögen im bisherigen Beruf von zumindest 20 Prozent; BGE 134 V 20 E. 3.2.2 S. 23; SVR 2008 BVG Nr. 34 S. 143 E. 2.3 mit Hinweisen, 9C_127/2008) und der allenfalls erst später eingetretenen Invalidität voraus (BGE 130 V 270 E. 4.1 S. 275).
1.1.1 Der sachliche Konnex ist gegeben, wenn der Gesundheitsschaden, der zur Arbeitsunfähigkeit geführt hat, im Wesentlichen der gleiche ist wie derjenige, auf welchem die Erwerbsunfähigkeit beruht (BGE 134 V 20 E. 3.2 S. 22).
1.1.2 Die Annahme eines engen zeitlichen Zusammenhangs setzt voraus, dass die versicherte Person nach Eintritt der Arbeitsunfähigkeit, deren Ursache zur Invalidität geführt hat, nicht während längerer Zeit wieder arbeitsfähig war. Bei der Prüfung dieser Frage sind die gesamten Umstände des konkreten Einzelfalles zu berücksichtigen, namentlich die Art des Gesundheitsschadens, dessen prognostische Beurteilung durch den Arzt sowie die Beweggründe, welche die versicherte Person zur Wiederaufnahme oder Nichtwiederaufnahme der Arbeit veranlasst haben. Zu den für die Beurteilung des zeitlichen Konnexes relevanten Umständen zählen auch die in der Arbeitswelt nach aussen in Erscheinung tretenden Verhältnisse, wie etwa die Tatsache, dass ein Versicherter über längere Zeit hinweg als voll vermittlungsfähiger Stellensuchender Taggelder der Arbeitslosenversicherung bezieht. Allerdings kann solchen Zeiten nicht die gleiche Bedeutung beigemessen werden wie Zeiten effektiver Erwerbstätigkeit. Mit Bezug auf die Dauer der den zeitlichen Konnex unterbrechenden Arbeitsfähigkeit kann die Regel von Art. 88a Abs. 1 IVV als Richtschnur gelten. Nach dieser Bestimmung ist eine anspruchsbeeinflussende Verbesserung der Erwerbsfähigkeit in jedem Fall zu berücksichtigen, wenn sie ohne wesentliche Unterbrechung drei Monate gedauert hat und voraussichtlich weiterhin andauern wird. Bestand während mindestens drei Monaten wieder volle Arbeitsfähigkeit und erschien gestützt darauf eine dauerhafte Wiedererlangung der Erwerbsfähigkeit als objektiv wahrscheinlich, stellt dies ein gewichtiges Indiz für eine Unterbrechung des zeitlichen Zusammenhangs dar. Anders verhält es sich, wenn die fragliche, allenfalls mehr als dreimonatige Tätigkeit als Eingliederungsversuch zu werten ist oder massgeblich auf sozialen Erwägungen des Arbeitgebers beruhte und eine dauerhafte Wiedereingliederung unwahrscheinlich war (BGE 134 V 20 E. 3.2.1 S. 22 mit Hinweisen).
1.2 Entscheiderhebliche Feststellungen der Vorinstanz zur Art des Gesundheitsschadens (Befund, Diagnose etc.) und zur Arbeitsfähigkeit, die Ergebnis einer Beweiswürdigung sind, binden das Bundesgericht, soweit sie nicht offensichtlich unrichtig sind oder auf einer Rechtsverletzung im Sinne von Art. 95 BGG beruhen (Art. 97 Abs. 1 BGG sowie Art. 105 Abs. 1 und 2 BGG; vgl. BGE 132 V 393 E. 3.2 S. 397). Dies gilt auch für den Zeitpunkt des Eintritts der Arbeitsunfähigkeit, deren Ursache zur Invalidität geführt hat (Art. 23 lit. a BVG; Urteil 9C_182/2007 vom 7. Dezember 2007 E. 4.1.1). Frei überprüfbare Rechtsfrage ist dagegen, nach welchen Gesichtspunkten die Entscheidung über den Zeitpunkt des Eintritts einer rechtserheblichen Arbeitsunfähigkeit erfolgt (SVR 2009 BVG Nr. 7 S. 22 E. 2.2, 9C_65/2008).
2. 2.1 Nicht bestritten ist die Arbeitsunfähigkeit von mehr als 20 % während des Versicherungsverhältnisses mit der Beschwerdegegnerin (25. November 1996 bis 31. August 1997); unstrittig ist ebenso der sachliche Zusammenhang mit der späteren Invalidität, dass also der Gesundheitsschaden, der zur Arbeitsunfähigkeit geführt hat, im Wesentlichen der gleiche ist wie derjenige, auf welchem die Erwerbsunfähigkeit beruht.
2.2 Streitig und zu prüfen ist jedoch der zeitliche Zusammenhang. Soweit die Vorinstanz hierzu Feststellungen zu entscheiderheblichen Tatfragen (oben E. 1.2) getroffen hat, darf das Bundesgericht nach dem Gesagten nur davon abweichen, wenn jene offensichtlich unrichtig sind oder auf einer Verletzung bundesrechtlicher Grundsätze beruhen.
3. 3.1 Gemäss Feststellung der Vorinstanz liegt für die Zeit von September 1997 bis März 2002 keine echtzeitliche Bestätigung einer Arbeitsunfähigkeit vor. Insbesondere war die Beschwerdeführerin von Juli 1999 bis Oktober 2000 bei der Firma C._ AG ohne nennenswerte Absenz tätig. Diese Tatsachenfeststellungen sind nicht offensichtlich unrichtig. Es ist also davon auszugehen, dass die Beschwerdeführerin in der Ausübung ihrer Tätigkeit bei der Firma M._ AG, der Firma C._ AG und der Firma E._ AG nicht aus gesundheitlichen Gründen eingeschränkt war. Diese Tätigkeiten können bei dieser Sachlage auch nicht als Eingliederungsversuch betrachtet werden.
3.2 Die Beschwerdeführerin hält dagegen, der reglementarische Invaliditätsbegriff weiche vom Invalidenversicherungsgesetz ab, denn es genüge eine Erwerbsunfähigkeit in einer angemessenenen Tätigkeit oder ein 25-prozentiger Invaliditätsgrad nach IVG. Sie sei schon bei der Arbeit für die Firma F._ AG gesundheitlich angeschlagen und in den späteren Beschäftigungen (Firma M._ AG, Firma C._ AG, Firma E._ AG, Firma H._ AG) im Sinne des Reglementes erwerbsunfähig gewesen. Die Beschwerdeführerin macht an sich zu Recht geltend, dass die Vorinstanz nicht ausdrücklich auf den reglementarischen Invaliditätsbegriff Bezug genommen hat.
3.3 Nach BGE 134 V 20 E. 5.3 S. 27 muss die angepasste Tätigkeit, in welcher Arbeitsfähigkeit besteht, ein rentenausschliessendes Einkommen erlauben, damit von einer Unterbrechung des zeitlichen Zusammenhanges gesprochen werden kann. Wenn man auf die reglementarische Regelung abstellt (Rente schon ab einem Invaliditätsgrad im Sinne der Invalidenversicherung von mindestens 25 %) und die aktenkundigen Einkommenszahlen vergleicht, hat in der Tat die Beschwerdeführerin bei der Firma C._ AG ein Einkommen erzielt, das - verglichen mit dem Einkommen bei der Firma F._ AG - mehr als 25 % tiefer lag. Allerdings kann eine Erwerbseinbusse nicht einfach mit einer entsprechenden Erwerbsunfähigkeit gleichgesetzt werden. Auch in diesem Fall ist vielmehr für die Annahme einer Erwerbsunfähigkeit verlangt, dass die Einschränkung durch ärztlichen Befund objektiv nachweisbar durch Krankheit verursacht ist (Art. 1 und 28a IVG sowie Art. 7, 8 und 16 ATSG i.V.m. Art. 23 lit. a BVG bzw. Art. 2 Ziff. 11 des Reglements der Beschwerdegegnerin). Daran fehlt es nach den Feststellungen der Vorinstanz. Zwar hat die Beschwerdeführerin Psychiater besucht (vgl. Übersicht über Arzt-, Psychiater- und Psychologen-Besuche vom 6. September 2006), die sie aber offensichtlich gerade nicht krankgeschrieben haben. Der blosse Umstand, dass sie in den späteren Anstellungen weniger verdient hat als in der Firma F._ AG, wo sie als Prokuristin tätig war, bestätigt daher auch im Sinne des Reglementes noch keine Erwerbsunfähigkeit.
4. Dem Ausgang des Verfahrens entsprechend hat die Beschwerdeführerin die Gerichtskosten zu tragen (Art. 66 Abs. 1 BGG). Obsiegende Behörden und mit öffentlichrechtlichen Aufgaben betraute Organisationen haben grundsätzlich keinen Anspruch auf Parteientschädigung (Art. 68 Abs. 3 BGG). Zu den mit öffentlichrechtlichen Aufgaben betrauten Organisationen gehören auch die Pensionskassen (BGE 126 V 143 E. 4a S. 150, 123 V 290 E. 10 S. 309). Ausnahmsweise kann eine Prozessentschädigung gewährt werden, wenn wegen der Besonderheit oder Schwierigkeit der Sache der Beizug eines frei praktizierenden Anwalts notwendig ist (BGE 119 V 448 E. 6b S. 456; RKUV 1995 Nr. K 955 S. 6 [K 40/93]); dies ist hier jedoch nicht der Fall.
Demnach erkennt das Bundesgericht:
1. Die Beschwerde wird abgewiesen.
2. Die Gerichtskosten von Fr. 500.- werden der Beschwerdeführerin auferlegt.
3. Dieses Urteil wird den Parteien, dem Sozialversicherungsgericht des Kantons Zürich und dem Bundesamt für Sozialversicherungen schriftlich mitgeteilt.
Luzern, 28. Mai 2009
Im Namen der II. sozialrechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Präsident: Der Gerichtsschreiber:
Meyer Schmutz