Faits: A. Le 11 mars 2004, vers 1h00, A._ conduisait un train routier, propriété de la société Y._ SA, à la vitesse de 29 km/h sur l'autoroute - limitée à 80 km/h à l'endroit de l'accident (rapport d'expertise du 10 février 2007, ch. 4.7) - de La Chaux-de-Fonds en direction de Neuchâtel. La chaussée était enneigée et glissante. A la sortie d'une tranchée couverte, où la route décrit une grande courbe à gauche avec une légère déclivité latérale, B._, au volant d'un autre train routier, propriété de la société V._ SA, a dépassé A._ à une allure de 36 km/h. Les deux trains routiers sont alors entrés en contact. Au terme de l'accrochage, le véhicule A._ s'est retrouvé en position de L et le véhicule B._ coincé contre la glissière centrale par la remorque du premier camion. Renvoyés devant le Tribunal de police du Val-de-Ruz pour perte de maîtrise et vitesse inadaptée notamment, les deux conducteurs ont été acquittés, au bénéfice du doute. Lors de l'audience, le témoin C._, qui suivait les deux camions avec son véhicule 4x4, a précisé que la "route était glissante, couverte d'une couche de neige de 5 à 10 cm, avec dessous, une couche de glace". B. Le 23 décembre 2004, Y._ SA a ouvert action en paiement contre Assurances X._, l'assureur responsabilité civile de V._, en vertu de l'action directe découlant de l'art. 65 al. 1 LCR. Alléguant que le chauffeur B._ porte la responsabilité exclusive de l'accident, elle a réclamé 62'334 fr. 70 pour le dommage matériel découlant de l'accident, et 3'437 fr. 80 de frais d'avocat avant procès. Assurances X._ s'est opposée à la demande en alléguant que l'accident a été causé par la remorque du chauffeur A._, celle-ci ayant heurté l'avant droit du véhicule B._. Reconventionnellement, elle a conclu au paiement de 6'027 fr. 10, montant qu'elle a dû payer pour la réparation de la glissière de sécurité. Lors de l'instruction, le témoin C._ a déclaré que les conditions de circulation étaient "plus qu'impossibles" la nuit de l'accident et précisé que "lors du constat [ils] tenai[en]t à peine debout tant cela glissait". Au moment où le second conducteur a entamé son dépassement, le témoin s'est dit "qu'il ne passerait jamais" car lui-même, avec son véhicule 4x4, tenait "à peine sur la route". La cour cantonale a ordonné une expertise technique. Dans le rapport d'analyse dynamique d'accident du 10 février 2007, l'expert retient que le train routier A._ s'était déplacé vers la gauche et empiétait partiellement sur la voie de dépassement. Cet écart tient à "une raison indéterminée (écart de volant, perte de maîtrise ou glissement du train routier)". S'il est certain "que le train routier était en décélération avant le choc, l'expert ajoute qu' "il n'est pas possible d'établir un lien avec la décélération et une glissade éventuelle provoquée par celle-ci". Par jugement du 5 janvier 2009, la IIe Cour civile du Tribunal cantonal du canton de Neuchâtel a condamné Assurances X._ à payer à Y._ SA 26'708 fr. 85 et débouté les parties de toutes autres conclusions. Il a considéré que, le chauffeur B._ ayant commis une sérieuse imprudence qui constitue la cause majeure de l'accident, Assurances X._ devait supporter les 3⁄4 du dommage, le 1⁄4 restant devant être supporté par Y._ SA, le chauffeur A._ ayant commis une légère faute. C. Assurances X._ recourt en matière civile au Tribunal fédéral contre le jugement du 5 janvier 2009. Elle reproche à la cour cantonale d'avoir violé les art. 61, 32 al. 1, 35 al. 3 LCR et l'art. 4 al. 2 OCR en retenant la responsabilité du chauffeur B._, alors même que celui-ci a toujours gardé la maîtrise de son train routier. Au surplus, elle conteste l'existence du lien de causalité adéquate entre la vitesse inadaptée aux circonstances et l'accident. Y._ SA conclut au rejet du recours dans la mesure de sa recevabilité.