I've had a lot of experience with corrupt transaction logs. We have a client where they put out machines with faulty raid controllers. If the machine lost power, HDD corruption ensued.
Fortunately it was with SQL 2000, where you can actually rebuild a transactionlog (an undocumented stored proc).
Eg, for a corrupt MSDB transaction log, put the DB in emergency mode and:
This even works with replicated DBs (without dropping replication).