Faits: A. A.a Sous la raison sociale X._, Y._ et Z._, forment une société en nom collectif sise à Yverdon-les-Bains dont le but social est l'exploitation d'un garage et la vente de véhicules d'occasion. En 1983, X._ a acheté deux extincteurs à la maison A._. La législation cantonale impose un contrôle de ces appareils tous les deux ans. Conformément à un accord oral passé avec X._, A._ a procédé à la vérification et à l'entretien de ceux-ci à quelques reprises, pour la dernière fois en 1990. Ultérieurement, le garage a déménagé. A._ n'a pas été informée de la nouvelle adresse. En 1992, B._SA, dont le siège est à Carouge, a repris les activités de A._, y compris la cartothèque relative aux clients. A.b En mars 1995, le représentant de B._SA pour la région d'Yverdon-les-Bains a fortuitement retrouvé le garage X._. Il a proposé à Y._ et Z._ de contrôler les extincteurs A._, ce que les deux hommes ont déclaré refuser pour l'immédiat, car ils avaient acquis deux autres extincteurs de la marque C._, qui venaient d'être révisés. En octobre 1995, le représentant de B._SA a fait une nouvelle visite au garage. Avec l'accord des associés, il a procédé au démontage et au contrôle des appareils A._. A cette occasion, il a constaté que la cartouche du gaz propulseur de l'un d'eux était sous-dimensionnée. N'ayant pas les pièces de rechange avec lui, il a indiqué qu'il repasserait la semaine suivante; dans l'intervalle, l'un des extincteurs serait normalement opérationnel, alors que l'autre fonctionnerait moins longuement en raison de la pression diminuée de la cartouche. Il a complètement remonté les deux engins. A.c Le 25 octobre 1995, un incendie s'est déclaré chez X._. L'un des extincteurs A._ n'a pas fonctionné. Le second a pu être utilisé, mais n'a expulsé qu'une faible quantité de poudre. Le garage a subi des dégâts pour plusieurs dizaines de milliers de francs. Une enquête pénale a été ouverte, dans le cadre de laquelle une expertise des extincteurs A._ a été ordonnée. L'expert a rendu son rapport le 28 mars 1996. Le 25 novembre 1996, Y._ a fait notifier à B._SA un commandement de payer 200'000 fr. Le 18 décembre 1996, le juge d'instruction a rendu une ordonnance de non-lieu. Il a retenu que l'enquête n'avait pas permis d'établir la commission d'une infraction pénale par Y._ ou un tiers, ni les raisons de la disparition de poudre dans les extincteurs. B. Le 24 septembre 2001, la société en nom collectif a assigné B._SA en paiement de 61'740 fr., avec intérêts à 5% dès le 25 octobre 1995, représentant le dommage non pris en charge par l'assurance-incendie. Par jugement du 15 mai 2003, le Tribunal de première instance du canton de Genève a rejeté l'action, qu'il a estimée prescrite. La Chambre civile de la Cour de justice du canton de Genève a confirmé cette décision dans un arrêt du 12 décembre 2003. C. La société en nom collectif recourt en réforme au Tribunal fédéral. Ses conclusions tendent à l'annulation de l'arrêt du 12 décembre 2003 et à l'admission de ses prétentions en dommages-intérêts. B._SA invite le Tribunal fédéral à confirmer la décision attaquée. La cour cantonale ne présente pas d'observations. D. Par arrêt de ce jour, le Tribunal fédéral a rejeté un recours de droit public interjeté parallèlement par la demanderesse contre l'arrêt du 12 décembre 2003. 