Paul Randal writes about and demonstrates the workings of the transaction log.
http://technet.microsoft.com/en-us/magazine/2009.02.logging.aspx
Some reasons why your transaction log will not or is not shrinking.
A query to see why your log cannot be reused and is stopping the function of your database
SELECT name,log_reuse_wait_desc
FROM MASTER.sys.databases
The meanings of log_reuse_wait_desc are shown in the msdn article linked to above.
And finally, some steps for what to do when your log is full.
http://msdn.microsoft.com/en-us/library/ms175495%28SQL.90%29.aspx