Sachverhalt:
A. Die Y._ AG mit Sitz in A._ SO unterbreitete am 19. Mai 2008 dem Atelier d'Architecture Z._ in B._ eine schriftliche, französischsprachige Offerte in der Höhe von Fr. 72'359.90 für die Lieferung von Fenstern; das Atelier handelte hierbei als Vertreter der in B._ wohnhaften X._.
Die Y._ AG bat um Prüfung der Offerte und um Mitteilung im Falle von Unregelmässigkeiten ("irrégularités"). Am Ende des Textes sind die Zahlungsbedingungen aufgeführt mit dem Hinweis "selon nos conditions de livraison". Anschliessend steht Folgendes:
"Annexe: conditions de livraison
Nous aurions plaisir à pouvoir réaliser ce projet pour vous et nous vous assurons une exécution de qualité et de design. Si vous n'avez pas connaissance de nos CGV, vous pouvez à tout moment nous les réclamer. (...)"
Das Atelier nahm die Offerte am 30. Mai 2008 im Namen von X._ an.
B. Mit Vorladungsbegehren vom 2. September 2009 reichte die Unternehmerin Y._ AG beim solothurnischen Richteramt Thal-Gäu Klage auf Bezahlung des Werklohnes von Fr. 79'526.10 gegen die Bestellerin X._ ein; sie berief sich hierfür auf eine Gerichtsstandsklausel in ihren allgemeinen Geschäftsbedingungen ("conditions générales de vente", CGV), welche lautet: "le for pour le client et le fournisseur est au siège du fournisseur, sis à A._". Die Bestellerin erhob die Einrede der örtlichen Unzuständigkeit. Das Verfahren wurde hierauf auf diese Zuständigkeitsfrage beschränkt.
Mit Urteil vom 29. Juni 2010 wies das Amtsgericht von Thal-Gäu die Prozesseinrede der Bestellerin ab und setzte der Unternehmerin eine Frist von dreissig Tagen ab Rechtskraft des Urteils, um die begründete Forderungsklage einzureichen. Eine von der Bestellerin dagegen erhobene Appellation wies das Obergericht des Kantons Solothurn mit Urteil vom 28. April 2011 ab und bestätigte den erstinstanzlichen Entscheid.
Das Obergericht stellte zuerst fest, es sei nicht bewiesen, dass die CGV der Offerte beigelegt waren. Dann stellte es fest, der Vertreter der Bestellerin sei geschäftserfahren gewesen und ihm habe bewusst sein müssen, dass allgemeine Geschäftsbedingungen für das Vertragsverhältnis mit der Unternehmerin von Bedeutung waren. Daraus schloss es, dass erwartet werden durfte, der Vertreter der Bestellerin werde vor der Annahme der Offerte bei der Unternehmerin mit einem einfachen Telefonanruf oder E-Mail rückfragen, sollten die CGV der Offerte tatsächlich nicht beigelegen haben. Laut Obergericht durfte die Unternehmerin das in guten Treuen erwarten, insbesondere wegen des Hinweises in der Offerte, deren Adressat könne die CGV jederzeit verlangen, falls er sie nicht kenne. Demzufolge bejahte das Obergericht einen normativen Konsens im Sinne einer Globalübernahme der CGV der Unternehmerin.
C. Die Bestellerin X._ (nachfolgend: Beschwerdeführerin) reichte Beschwerde in Zivilsachen ein mit dem Begehren, es sei das Urteil des Obergerichts des Kantons Solothurn vom 28. April 2011 aufzuheben und die Unzuständigkeit der solothurnischen Gerichte festzustellen. Die Unternehmerin Y._ AG (nachfolgend: Beschwerdegegnerin) schloss in ihrer Antwort auf Abweisung der Beschwerde.
Mit Verfügung vom 1. Juli 2011 wurde der Beschwerde aufschiebende Wirkung erteilt. In der Folge reichte die Beschwerdeführerin unaufgefordert eine Replik ein, worauf die Beschwerdegegnerin ihrerseits eine Duplik zu den Akten gab.
Erwägungen:
1. 1.1 Der von der Vorinstanz festgestellte Sachverhalt ist für das Bundesgericht massgebend, es sei denn, eine Partei zeige auf, dass er offensichtlich unrichtig ist (Art. 105 BGG). Das Obergericht hat festgestellt, der Versand der CGV zusammen mit der Offerte sei nicht bewiesen; es hat ferner offengelassen, ob mit den in der Offerte erwähnten "conditions de livraison" einerseits und den CGV andererseits dasselbe gemeint war. Sofern die Beschwerdegegnerin in der Beschwerdeantwort hierzu etwas anderes vorbringt, genügen ihre Ausführungen, die sich in Behauptungen erschöpfen, den Begründungsanforderungen nicht (vgl. BGE 133 II 249 E. 1.4.3; 133 III 393 E. 7.1, 462 E. 2.4). Im Übrigen kann von Willkür (Art. 9 BV) keine Rede sein. In der Offerte werden zwei verschiedene Bezeichnungen verwendet, die üblicherweise nicht dasselbe abdecken, umfassen allgemeine Geschäftsbedingungen in der Regel doch mehr als nur Lieferbedingungen; sodann wird präzisiert, dass die "conditions de livraison" als "annexe" beiliegen, während bezüglich der CGV bemerkt wird, der Empfänger der Offerte könne sie verlangen, wenn er sie nicht kenne, was impliziert, dass die CGV der Offerte gerade nicht beilagen und dass sie etwas anderes waren als die beigelegten Lieferbedingungen.
Es steht somit fest, dass die Mitteilung der CGV zusammen mit der Offerte nicht bewiesen ist; da es die Beschwerdegegnerin ist, die aus der Mitteilung der CGV Rechte ableitet, ist zu ihren Ungunsten davon auszugehen, dass die CGV der Offerte nicht beilagen (Art. 8 ZGB). Sodann ergibt sich aus dem Text der Offerte, dass die Beschwerdegegnerin mit der Möglichkeit rechnete, dass die Beschwerdeführerin oder deren Vertreter die CGV auch sonst nicht kannte; auch in diesem Punkt ist zu Ungunsten der beweisbelasteten Beschwerdegegnerin anzunehmen, die Gegenpartei habe diese Kenntnis nicht gehabt.
1.2 Während das erstinstanzliche Urteil noch vor Inkrafttreten der Schweizerischen Zivilprozessordnung (ZPO; SR 272) erging, und sich die örtliche Zuständigkeit daher nach dem damals anwendbaren Gerichtsstandsgesetz vom 24. März 2000 (aGestG; AS 2000 2355) richtete, hatte die Vorinstanz die Zuständigkeitsfrage grundsätzlich gemäss Art. 404 Abs. 2 ZPO nach den neuen Bestimmungen von Art. 9 ff. ZPO zu beurteilen, wobei eine bestehende Zuständigkeit nach dem alten Recht erhalten blieb (vgl. Urteil 4A_145/2011 vom 20. Juni 2011 E. 2). Die Gültigkeit einer Gerichtsstandsvereinbarung bestimmt sich gemäss Art. 406 ZPO jedoch nach dem Recht, das zur Zeit ihres Abschlusses gegolten hat.
Die Gültigkeit der von der Beschwerdegegnerin behaupteten Gerichtsstandsvereinbarung zugunsten einer Zuständigkeit der solothurnischen Gerichte richtet sich damit nach dem bisherigen Recht des Gerichtsstandsgesetzes. Im Übrigen beurteilt sich die örtliche Zuständigkeit nach Art. 9 ff. ZPO, ausser es wäre unter der Herrschaft des aGestG eine Zuständigkeit begründet worden, die nach den Bestimmungen der ZPO nicht mehr gegeben wäre (vgl. Art. 404 Abs. 2 ZPO). Dass Letzteres zutreffen würde, bringt die Beschwerdegegnerin jedoch zu Recht nicht vor.
2. Das Obergericht hat einen Verzicht der Beschwerdeführerin auf den ordentlichen Wohnsitzgerichtsstand (Art. 10 Abs. 1 lit. a ZPO; vgl. bereits Art. 3 Abs. 1 lit. a aGestG) aufgrund eines sog. normativen Konsenses angenommen.
Vereinbarungen prozessrechtlicher Natur sind wie alle Verträge nach Massgabe des Vertrauensprinzips zu beurteilen. Ob ein gültiger Verzicht auf den Wohnsitzrichter vorliegt, hängt davon ab, ob der Vertragspartner des Verzichtenden in guten Treuen annehmen durfte, sein Gegenkontrahent habe mit dem Akzept zum Vertrag auch der Gerichtsstandsvereinbarung zugestimmt. Da die in allgemeinen Geschäftsbedingungen enthaltene Gerichtsstandsklausel in der Regel eine geschäftsfremde und damit ungewöhnliche Bestimmung darstellt und zudem ein verfassungsmässiges Recht (Art. 30 Abs. 2 BV) beschränkt, ist diese Annahme nur dann gerechtfertigt, wenn davon ausgegangen werden kann, der Verzichtende habe von der Gerichtsstandsklausel tatsächlich Kenntnis genommen und ihre Bedeutung richtig erkannt. Ist der Verzichtende geschäftserfahren und rechtskundig, so darf sein Vertragspartner einen solchen bewussten Verzicht auf den Wohnsitzrichter in aller Regel dann annehmen, wenn die allgemeinen Geschäftsbedingungen der Vertragsofferte beigelegt waren oder wenn aus früheren Geschäftsbeziehungen deren Anwendbarkeit und Inhalt ihm bekannt waren. Unter diesen Umständen kann von einem erfahrenen und rechtskundigen Geschäftspartner erwartet werden, dass er die Gerichtsstandsklausel beachtet und versteht, ferner, dass er sie ausdrücklich ablehnt, wenn er mit dem Verzicht auf den Wohnsitzrichter nicht einverstanden ist (vgl. BGE 118 Ia 294 E. 2a S. 297; 104 Ia 278 E. 3 S. 280 f.; bestätigt im Entscheid 4C.282/2003 vom 15. Dezember 2003 E. 3.1).
Vorliegend ist in tatsächlicher Hinsicht davon auszugehen, dass die CGV, welche die Gerichtsstandsklausel enthalten, der Offerte der Beschwerdegegnerin nicht beigelegt waren und dass die Beschwerdeführerin bzw. deren Vertreter den Inhalt der CGV auch sonst nicht kannten. Unter diesen Umständen durfte die Beschwerdegegnerin nach den oben erwähnten Grundsätzen nicht in Treu und Glauben annehmen, die Beschwerdeführerin habe mit Annahme der Offerte auch der Gerichtsstandsklausel zugestimmt. Aus dem Umstand, dass die Beschwerdeführerin bzw. deren Vertreter sich nicht nach dem Inhalt der CGV erkundigte, darf nach Treu und Glauben nicht geschlossen werden, sie hätten einem Verzicht auf den verfassungsmässigen Anspruch auf den Richter des Wohnsitzes zugestimmt für den Fall, dass die CGV einen solchen Verzicht vorsähen. Die unterbliebene Mitteilung der Gerichtsstandklausel gereicht demjenigen zum Nachteil, der aus der Mitteilung Rechte ableiten will, und nicht der Gegenpartei; die Bitte an Letztere, allfällige Unregelmässigkeiten der Offerte zu melden, worunter die Beschwerdegegnerin das Fehlen der CGV als Beilage versteht, vermag daran nichts zu ändern.
Eine gültige Gerichtsstandvereinbarung liegt nicht vor. Es gilt somit der Gerichtsstand am Wohnsitz der Beschwerdeführerin (Art. 10 Abs. 1 lit. a ZPO; vgl. bereits Art. 3 Abs. 1 lit. a aGestG). Die Gerichte des Kantons Solothurn sind demzufolge nicht zuständig.
3. Die unterliegende Beschwerdegegnerin trägt die Gerichts- und Parteikosten (Art. 66 und 68 BGG).
Die Sache ist zu neuer Entscheidung über die Kosten- und Entschädigungsfolgen des kantonalen Verfahrens an die Vorinstanz zurückzuweisen (vgl. Art. 67 und Art. 68 Abs. 5 BGG).
Demnach erkennt das Bundesgericht:
1. Die Beschwerde wird gutgeheissen und das angefochtene Urteil des Obergerichts des Kantons Solothurn vom 28. April 2011 aufgehoben.
2. Es wird festgestellt, dass die solothurnischen Gerichte nicht zuständig sind.
3. Die Gerichtskosten von Fr. 2'000.-- werden der Beschwerdegegnerin auferlegt.
4. Die Beschwerdegegnerin hat die Beschwerdeführerin für das bundesgerichtliche Verfahren mit Fr. 2'500.-- zu entschädigen.
5. Die Sache wird zu neuer Entscheidung über die Kosten- und Entschädigungsfolgen des kantonalen Verfahrens an die Vorinstanz zurückgewiesen.
6. Dieses Urteil wird den Parteien und dem Obergericht des Kantons Solothurn, Zivilkammer, schriftlich mitgeteilt.
Lausanne, 10. August 2011
Im Namen der I. zivilrechtlichen Abteilung
des Schweizerischen Bundesgerichts
Die Präsidentin: Klett
Der Gerichtsschreiber: Leemann