Faits:
A. La Fondation de prévoyance en faveur du personnel de X._ SA et des sociétés affiliées (la Fondation X._) a été inscrite au registre du commerce le 11 décembre 1985. Le 27 février 1992, le Service de la surveillance des fondations et des institutions de prévoyance professionnelle du canton de Fribourg a constaté que la Fondation X._ avait accordé des prêts qui dépassaient chacun la limite de 15 % par débiteur fixée par la loi; il l'a sommée de rétablir une situation conforme au droit. Les difficultés financières de la Fondation X._ ont abouti à sa mise en liquidation, par décision de l'Autorité de surveillance des fondations et des institutions de prévoyance professionnelle du canton de Fribourg du 30 juin 1998.
Par décision du 17 novembre 2000, le Fonds de garantie LPP a versé la somme de 412'000 fr. au titre de garantie des prestations légales en faveur des collaborateurs de la Fondation X._, insolvable.
B. Le 28 mars 2003, la Fondation X._ et le Fonds de garantie LPP ont saisi le Tribunal administratif du canton de Fribourg (aujourd'hui : Tribunal cantonal, Section administrative) d'une action en justice à l'encontre de O._ SA, en tant qu'ancien organe de contrôle de la fondation, en réparation du dommage causé. Le 3 février 2004, la Fondation X._ et le Fonds de garantie LPP ont également ouvert une action à l'encontre de C._ et de D._, en qualité d'anciens gestionnaires de la fondation. Les prétentions de la Fondation X._ se sont élevées à 457'163 fr. 45 à l'encontre de l'ancien organe de révision et à 459'913 fr. 20 envers les anciens gestionnaires, avec intérêts; quant au Fonds de garantie LPP, il a réclamé aux défendeurs la somme de 412'000 fr., avec intérêts. En cours d'instance, le 4 août 2004, les conclusions des demandeurs ont été réduites de 140'000 fr.
Les défendeurs ont conclu au rejet des demandes.
Par jugement du 8 novembre 2007, le tribunal administratif, après avoir joint les causes, a débouté les demandeurs pour cause de prescription.
C. La Fondation X._ et le Fonds de garantie LPP interjettent conjointement un recours en matière de droit public contre ce jugement dont ils demandent l'annulation, en concluant à ce qu'il soit constaté que les actions intentées par eux les 28 mars 2003 et 3 février 2004 ne sont pas atteintes par la prescription, ainsi qu'au renvoi de la cause au Tribunal administratif du canton de Fribourg afin qu'il statue sur les prétentions formées à l'encontre de O._ SA et de C._ et D._. Les recourants concluent à la condamnation des intimés aux frais judiciaires ainsi qu'au versement d'une indemnité de dépens de 12'000 fr.
Avec suite de frais et dépens, les intimés concluent d'une part à l'admission du recours de la Fondation X._ dans la mesure où la demande a été rejetée pour cause de prescription, d'autre part au rejet du recours du Fonds de garantie LPP.
L'Office fédéral des assurances sociales a renoncé à se déterminer.
Considérant en droit:
1. 1.1 Le Tribunal administratif a retenu que la Fondation X._ disposait de tous les éléments nécessaires pour former une action en responsabilité à l'encontre de l'organe de contrôle et des gestionnaires dès le 27 février 1992, car le dommage et les responsabilités étaient clairement établis à ce moment-là. Comme les actions en justice avaient été introduites les 28 mars 2003 et 3 février 2004, la juridiction cantonale a jugé que la prescription décennale était atteinte (les défendeurs C._ et D._ ayant soulevé l'exception de prescription), ce qui entraînait leur rejet.
1.2 Dans leurs réponses respectives, les intimés se rallient à l'avis des recourants et admettent que le droit de la Fondation X._ de demander la réparation de son dommage, en vertu de l'art. 52 LPP, n'était pas atteint par la prescription. Ils concluent dès lors à l'admission du recours de la fondation et au renvoi de la cause aux premiers juges pour instruction et jugement au fond.
1.3 Le juge ne saurait suppléer d'office le moyen résultant de la prescription (art. 142 CO; ATF 129 V 237 consid. 4 p. 241; voir aussi ATF 134 V 223 consid. 2.2.2 p. 227).
En procédure fédérale, sur la question de la prescription, les intimés acquiescent aux conclusions de la Fondation X._. Leurs déclarations doivent ainsi être assimilées à un retrait du moyen invoqué devant le tribunal administratif, si bien que la cause lui sera renvoyée pour qu'il reprenne l'instruction des demandes des 28 mars 2003 et 3 février 2004 et statue à nouveau.
2. Le litige porte dès lors uniquement sur la question de la prescription de l'action du Fonds de garantie LPP, au sens de l'art. 56a LPP, et celle le cas échéant de la légitimation active de ce recourant.
2.1 Sous le titre marginal « Recours et droit au remboursement », l'art. 56a LPP prévoit que le fonds de garantie peut, vis-à-vis des personnes responsables de l'insolvabilité de l'institution de prévoyance ou du collectif d'assurés, participer aux prétentions de l'institution au moment du versement des prestations garanties et jusqu'à concurrence de celles-ci (al. 1). Les prestations indûment versées sont remboursées au fonds de garantie (al. 2). Le droit au remboursement selon l'al. 2 se prescrit par un an après que le fonds de garantie en a eu connaissance, mais au plus tard par cinq ans après le versement de la prestation. Si le droit à la restitution découle d'un acte punissable pour lequel le droit pénal fixe un délai de prescription plus long, ce délai est applicable (al. 3).
L'art. 56a LPP ne règle pas la question du délai dans lequel le fonds de garantie doit faire valoir ses prétentions au sens de l'alinéa 1, contrairement à celle du droit au remboursement de prestations indûment touchées selon les alinéas 2 et 3. Dans un arrêt 9C_920/2008 du 16 avril 2009 (consid. 5), le Tribunal fédéral a comblé cette lacune authentique, jugeant par analogie avec l'art. 52 al. 3 LAVS que ce délai est de cinq ans et qu'il court à partir du moment auquel le fonds de garantie a versé ses prestations.
En l'espèce, le fonds de garantie a effectué un paiement de 412'000 fr. à la Fondation X._ le 17 novembre 2000 et les actions ont été intentées les 28 mars 2003 et 3 février 2004. Il s'ensuit que le délai de prescription n'est pas venu à échéance, du moins à raison du montant versé.
2.2 Quant à la question de la légitimation du Fonds de garantie LPP, elle n'a pas été examinée à satisfaction de droit par les premiers juges. Pour cette raison, la cause doit être renvoyée au tribunal cantonal.
3. Les intimés, qui succombent, supporteront les frais judiciaires (art. 66 al. 1 LTF).
La fondation recourante, qui obtient gain de cause dans un procès en responsabilité selon l'art. 52 LPP, a droit à une indemnité de dépens (art. 68 al. 1 LTF; ATF 128 V 124 consid. 5b pp. 133 sv). Pour les mêmes motifs, le fonds de garantie recourant peut également y prétendre dans le cadre d'une action fondée sur l'art. 56a LPP, lorsqu'il recourt aux services d'un mandataire qualifié (arrêt B 10/05 du 30 mars 2006, consid. 10.2, publié in SVR 2006 BVG n° 34 p. 137).
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est admis. Le jugement du Tribunal administratif du canton de Fribourg du 8 novembre 2007 est annulé, la cause étant renvoyée au Tribunal cantonal du canton de Fribourg, Section administrative pour qu'il reprenne l'instruction des demandes des 28 mars 2003 et 3 février 2004 et statue à nouveau.
2. Les frais judiciaires, arrêtés à 3'000 fr., sont mis à la charge des intimés.
3. Les intimés verseront aux recourants globalement la somme de 5'000 fr. (y compris la taxe à la valeur ajoutée) à titre de dépens pour la procédure fédérale.
4. Le présent arrêt est communiqué aux parties, au Tribunal cantonal du canton de Fribourg, Section administrative, et à l'Office fédéral des assurances sociales.
Lucerne, le 29 avril 2009
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
Le Président: Le Greffier:
Meyer Berthoud