Faits:
A. A._ et B._ (maîtres d'?uvre) ont fait construire un chalet sur le territoire de la commune vaudoise de .... Ils ont confié les travaux de charpente et de menuiserie à la société X._ SA (entrepreneur); l'art. 4 du contrat d'entreprise prévoyait qu'en cas de contestation, le for serait à Lausanne. L'ouvrage a été réceptionné le 1er décembre 2009. Ayant constaté à fin 2010 un écartement des joints des lambris des plafonds sous la toiture, les maîtres ont adressé un avis de défaut à l'entrepreneur; ils ont en outre dénoncé le cas à Z._ SA en sa qualité de caution solidaire.
B. Le 29 juillet 2011, les maîtres ont saisi le Juge de paix du district d'Aigle d'une requête de preuve à futur dirigée contre l'entrepreneur et la caution. Les deux parties intimées, se fondant sur la clause contractuelle de prorogation de for, ont contesté la compétence locale du Juge de paix d'Aigle. Par ordonnance du 19 octobre 2011, celui-ci a déclaré la requête irrecevable au motif qu'il était incompétent ratione loci.
Par arrêt du 23 janvier 2012, le Juge délégué de la Cour d'appel civile du Tribunal cantonal vaudois a admis l'appel formé par les maîtres et a réformé l'ordonnance en ce sens que le Juge de paix d'Aigle est déclaré compétent pour statuer sur la requête de preuve à futur. Le juge d'appel a considéré qu'au regard de l'art. 13 CPC, le tribunal du lieu où les mesures provisionnelles doivent être exécutées est compétent nonobstant une élection de for concernant l'action principale; il a en outre retenu que la valeur litigieuse était supérieure à 30'000 fr.
C. L'entrepreneur (recourante) interjette un recours en matière civile au Tribunal fédéral, en concluant principalement à ce que la requête de preuve à futur soit déclarée irrecevable. Par ordonnance du 30 avril 2012, la Présidente de la cour de céans a accordé l'effet suspensif au recours.
Les maîtres (intimés) concluent au rejet du recours. La caution s'en remet à justice.
Considérant en droit:
1. L'arrêt attaqué est une décision incidente sur la compétence, susceptible d'un recours immédiat (art. 92 LTF). La voie de recours est la même que pour la cause au fond (ATF 133 III 645 consid. 2.2 p. 648); il n'y a pas de motif de mettre en doute la valeur litigieuse estimée par l'autorité précédente (cf. art. 112 al. 1 let. d LTF; ATF 136 III 60 consid. 1.1.1 p. 62 i.f.), si bien que la voie du recours en matière civile est ouverte (cf. art. 74 al. 1 let. b LTF). Toutefois, les décisions portant sur l'administration de preuves à futur sont des mesures provisionnelles au sens de la LTF (ATF 138 III 46 consid. 1.1; cf. art. 158 al. 2 CPC); seule la violation de droits constitutionnels peut être invoquée, y compris lorsque le recours vise une décision sur la compétence de prendre de telles mesures (art. 98 LTF; cf. arrêt 4A_146/2010 du 2 juin 2010 consid. 2, in sic! 2011 390).
2. La recourante se plaint d'une violation de l'interdiction constitutionnelle de l'arbitraire lors de l'application de l'art. 13 CPC. A teneur de cette disposition, est impérativement compétent pour ordonner des mesures provisionnelles le tribunal compétent pour statuer sur l'action principale (let. a) ou le tribunal du lieu où la mesure doit être exécutée (let. b).
2.1 De l'avis de la recourante, l'alternative prévue à l'art. 13 let. b CPC ne serait offerte qu'en cas d'urgence. Cette disposition serait reprise de l'art. 33 aLFors (ancienne loi fédérale du 24 mars 2000 sur les fors en matière civile; RO 2000 2087), qui aurait déjà imposé une telle limitation. La recourante se fonde en outre sur un arrêt rendu en 1999 dans une cause à caractère international, où la cour de céans avait souligné qu'une prorogation de for ne doit pas être vidée de sa portée et qu'en conséquence, la partie ayant souscrit une telle clause ne peut pas choisir de requérir des mesures provisionnelles au for de l'exécution, sauf quand le tribunal du lieu en question est le seul à pouvoir prendre à temps les mesures nécessaires (ATF 125 III 451 consid. 3a p. 454).
2.2 Le texte de l'art. 13 CPC ne prévoit aucune limitation en ce sens que le for du lieu d'exécution ne serait ouvert qu'en cas d'urgence (cf. art. 13 let. b CPC). A s'en tenir au texte non équivoque de la loi, ce for est alternatif avec celui de l'action principale. Cela suffit en soi pour exclure tout arbitraire de la part de l'autorité cantonale, qui n'a pas subordonné à des restrictions le choix du for du lieu d'exécution.
L'art. 13 CPC correspond certes à l'art. 33 aLFors (Message du 28 juin 2006 relatif au code de procédure civile suisse, FF 2006 6879 ch. 5.2.2 ad art. 12). Le projet pour cette dernière disposition (art. 34 du projet) prévoyait qu'avant la litispendance, était compétent pour ordonner des mesures provisionnelles "un tribunal du lieu dans lequel est donnée la compétence pour connaître de la demande principale et en plus, en cas d'urgence, un tribunal du lieu dans lequel la mesure devra être exécutée" (Message du 18 novembre 1998 concernant la loi fédérale sur les fors en matière civile, FF 1999 2647 ad art. 34). Mais le texte du projet a été modifié devant le Conseil des États; la limitation au cas d'urgence pour le for du lieu d'exécution a été supprimée. Lors des débats, la rapporteuse Christiane Brunner a fait la déclaration suivante: "Nous avons donc introduit un for alternatif, et non plus subsidiaire, au tribunal du lieu dans lequel la mesure doit être exécutée" (BO 1999 CE 895). On ne saurait dès lors soutenir que sous le régime de l'art. 33 aLFors, le for au lieu d'exécution ne s'appliquait manifestement qu'en cas d'urgence (cf. KELLERHALS/GÜNGERICH, in Gerichtsstandsgesetz, 2001, n° 13 ad art. 33 LFors; MARCEL DIETRICH, Vorsorgliche Massnahmen nach Gerichtsstandsgesetz, in Das Gerichtsstandsgesetz, 2001, p. 137 s.).
Enfin, le for du lieu d'exécution de la mesure est impératif (art. 13 CPC), si bien que les parties ne peuvent pas y déroger (art. 9 al. 2 CPC); il en allait de même sous le régime de l'ancien droit (art. 2 et 33 aLFors, RO 2000 2080 et 2087). L'arrêt de 1999 cité par la recourante a été rendu avant l'entrée en vigueur de l'aLFors, et dans une cause à caractère international; il n'est pas pertinent en l'espèce.
Il s'ensuit que le grief d'application arbitraire de l'art. 13 CPC est infondé.
3. La recourante se plaint d'une violation de la liberté économique (art. 27 Cst.). Elle semble vouloir déduire de cette garantie que les parties peuvent librement convenir du for et exclure les fors légaux impératifs. Il n'y a pas à examiner cette question plus avant. Il suffit de relever que la loi peut restreindre les droits fondamentaux (art. 36 Cst.) et que la recourante ne démontre pas en quoi l'art. 9 CPC ne serait pas une base légale suffisante pour imposer un for à des acteurs économiques. Au demeurant, l'art. 9 CPC, en tant que disposition d'une loi fédérale, s'impose au juge qui ne saurait refuser de l'appliquer pour cause d'inconstitutionnalité (art. 190 Cst.).
4. La recourante, enfin, se plaint d'une violation de son droit d'être jugé par un tribunal établi par la loi, compétent, indépendant et impartial (art. 30 al. 1 Cst.). La compétence du Juge de paix d'Aigle découle de la loi, à savoir de l'art. 13 CPC; pour le surplus, la recourante ne soulève aucune critique au sujet de cette autorité.
5. Le recours, pour autant que recevable, ne peut qu'être rejeté. En conséquence, la recourante supportera les frais de la procédure et versera des dépens aux intimés (art. 66 et 68 LTF). Il n'est pas alloué de dépens à la caution qui n'a pas déposé de réponse.
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté dans la mesure où il est recevable.
2. Les frais judiciaires, arrêtés à 3'000 fr., sont mis à la charge de la recourante.
3. La recourante versera aux intimés A._ et B._, créanciers solidaires, une indemnité de 3'500 fr. à titre de dépens.
4. Le présent arrêt est communiqué aux mandataires des parties et au Juge délégué de la Cour d'appel civile du Tribunal cantonal du canton de Vaud.
Lausanne, le 3 août 2012
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: Klett
La Greffière: Monti