Sachverhalt: A.a Die C._ AG mit Sitz in M._ im Kanton St. Gallen schloss als Verkäuferin mit der D._ Co. mit Sitz in N._ im Iran einen Kaufvertrag, der mehrere Maschinen für die Verarbeitung von Ölsamen zum Gegenstand hat. Der Kaufpreis betrug USD 1'573'300.--. Die Verkäuferin hatte gemäss den vertraglichen Vereinbarungen den Transport der Kaufgegenstände in den Iran zu organisieren. Das Transportgut wurde jedoch auf Gefahr und Kosten der Käuferin transportiert. Die Transportkosten waren im Kaufpreis eingerechnet. Der Kaufpreis wurde mit einem Dokumentenakkreditiv der Bank E._ in O._ gesichert. Die Partnerbank in der Schweiz war die Bank F._. Diese durfte den Kaufpreis gemäss der Weisung der Bank E._ nur gegen Vorlage der im Dokumentenakkreditiv aufgezählten Dokumente auszahlen. Dazu gehörte namentlich ein "NEGOTIABLE FIATA MULTIMODAL TRANSPORT B. L." (Letzteres ist die Abkürzung für Bill of Lading) vom 24. Oktober 2001. Die Verkäuferin beauftragte die A._ AG mit Sitz in P._ im Kanton St. Gallen mit dem Transport der Maschinen von der Schweiz in den Iran und bezahlte die Frachtfixkosten von USD 12'000.-- im Voraus. Die Verkäuferin beauftragte die A._ AG mit Sitz in P._ im Kanton St. Gallen mit dem Transport der Maschinen von der Schweiz in den Iran und bezahlte die Frachtfixkosten von USD 12'000.-- im Voraus. A.b Die A._ AG verpflichtete das Transportunternehmen G._ GmbH, die Maschinen von Q._ im Kanton Thurgau bis nach R._ an der iranischen Grenze zu transportieren. Die G._ GmbH ihrerseits beauftragte eine türkische Transportfirma, die H._ Ltd. mit Sitz in S._, mit der effektiven Durchführung des Transportes. Die Maschinen wurden auf drei Lastwagen verladen. Der hier interessierende Lastwagen mit Anhänger fuhr am 25. Oktober 2001 in Q._ ab. Am 29. Oktober 2001 verunfallte dieser Lastwagen in Bulgarien. Er kam von der Strasse ab und kippte um. Da der Lastwagen nicht mehr zur Weiterfahrt benutzt werden konnte, beauftragte die H._ Ltd. eine bulgarische Transportfirma, die I._ SD, mit dem Transport der Maschinen bis an die iranische Grenze. Dort übernahm am 12. November 2001 die iranische Transportfirma K._ Company mit Sitz in O._ das Transportgut, wie dies von der A._ AG mit der Bank E._ vereinbart worden war. Die K._ Company überprüfte das Transportgut zusammen mit iranischen Zollbeamten am 11. November 2001 und stellte fest, dass die Maschinen nicht mehr verpackt und beschädigt waren. Als die Maschinen am Zielort im Iran eingetroffen waren, wurden sie am 18. und 20. November 2001 unter anderem von Vertretern der Verkäuferin sowie der Käuferin untersucht und die Ergebnisse wurden schriftlich festgehalten. Nach den Schätzungen der Vertreter der Verkäuferin hätte eine Reparatur der Maschinen rund USD 332'000.-- gekostet, gegenüber den Kosten der Lieferung von neuen Maschinen durch die Verkäuferin von rund USD 287'000.--. In der Folge liess die Käuferin selbst die Maschinen behelfsmässig reparieren und setzte sie in Betrieb. Eine Bewertung der Maschinen im Februar 2003 durch die L._ Services ergab indessen, dass die Reparatur der Maschinen nicht erfolgreich war und ihr Wert zum Teil beträchtlich vermindert war. Als die Maschinen am Zielort im Iran eingetroffen waren, wurden sie am 18. und 20. November 2001 unter anderem von Vertretern der Verkäuferin sowie der Käuferin untersucht und die Ergebnisse wurden schriftlich festgehalten. Nach den Schätzungen der Vertreter der Verkäuferin hätte eine Reparatur der Maschinen rund USD 332'000.-- gekostet, gegenüber den Kosten der Lieferung von neuen Maschinen durch die Verkäuferin von rund USD 287'000.--. In der Folge liess die Käuferin selbst die Maschinen behelfsmässig reparieren und setzte sie in Betrieb. Eine Bewertung der Maschinen im Februar 2003 durch die L._ Services ergab indessen, dass die Reparatur der Maschinen nicht erfolgreich war und ihr Wert zum Teil beträchtlich vermindert war. A.c Nachdem die von der Käuferin verpflichtete Transportversicherung B._ Co. mit Sitz in O._ mit der A._ AG Kontakt aufgenommen und ihr angezeigt hatte, sie werde von ihrer Kundin bezüglich des Transportschadens in Anspruch genommen und fordere ihrerseits von der A._ AG Ersatz, stellte sich diese am 2. Februar 2002 auf den Standpunkt, sie habe nur als Vermittlerin gemäss den Schweizerischen Spediteurbedingungen gehandelt, weshalb die Versicherung gebeten werde, direkt mit der G._ GmbH bzw. deren Unterfrachtführerin Kontakt aufzunehmen. Darauf schrieb die B._ Co. am 16. Februar 2002 auch die G._ GmbH mit der Absichtsangabe an, auf diese Regress nehmen zu wollen. Mit schriftlicher Erklärung vom 16. März 2002 trat die Käuferin alle ihr wegen des Unfallgeschehens zustehenden Forderungen an die B._ Co. ab. B. Mit Klageschrift vom 2. Mai 2003 erhob die B._ Co. im Kanton St. Gallen Klage gegen die A._ AG mit dem Rechtsbegehren, die Beklagte zur Zahlung von Fr. 320'127.90 nebst 5 % Zins seit 1. Januar 2002 zu verpflichten. Die Klägerin machte geltend, der Schaden an den Maschinen sei durch das fahrlässige Verhalten eines Chauffeurs einer Unterfrachtführerin in Bulgarien verursacht worden. Für jede Beschädigung während der Ausführung des Beförderungsvertrages zwischen dem Zeitpunkt der Abfahrt und der Ablieferung im Iran hafte die Beklagte nach dem Übereinkommen über den Beförderungsvertrag im internationalen Strassengüterverkehr (abgekürzt CMR [Convention relative au contrat de transport international de marchandises par route]; SR 0.741.611) solidarisch. Ein Entlastungsbeweis nach Art. 17 CMR erscheine aussichtslos, müsse sich doch die Beklagte das Verhalten aller Hilfspersonen anrechnen lassen und könne sich nicht auf Mängel am Fahrzeug oder auf ein Fehlverhalten von beauftragten Drittpersonen berufen. Die Beklagte beantragte die Abweisung der Klage. Sie bestritt sowohl die Aktivlegitimation der Klägerin als auch ihre eigene Passivlegitimation und eventuell auch die Höhe des behaupteten Schadens. Nachdem beide Parteien der G._ GmbH den Streit verkündet hatten, erklärte diese mit Eingabe vom 29. Juni 2004, sie beteilige sich im Sinne von Art. 50 ZPO/SG am Prozess als Nebenpartei. Mit Urteil vom 23. März 2005 verpflichtete das Handelsgericht des Kantons St. Gallen die Beklagte zur Zahlung von Fr. 285'936.45 nebst 5 % Zins seit 2. August 2002. Die Beklagte reichte gegen das Urteil kantonale Nichtigkeitsbeschwerde ein, die vom Kassationsgericht des Kantons St. Gallen mit Entscheid vom 7. Februar 2006 abgewiesen wurde, soweit darauf eingetreten wurde. C. Mit ihrer Berufung beantragt die Beklagte dem Bundesgericht, das Urteil des Handelsgerichts des Kantons St. Gallen vom 23. März 2005 aufzuheben und die Klage abzuweisen, eventuell die Sache zur Neubeurteilung an die Vorinstanz zurückzuweisen. Die Klägerin beantragt in ihrer Berufungsantwort, die Berufung abzuweisen, soweit auf sie einzutreten sei.