What I try and do is size it decently from the get go. However, best laid plans.... ya know...
anyway. About once a year I will try and run this command against active application databases which will tell you how many fragments the transaction log is in. If it is a very high number I will backup the trans log, shrink it down to 100MB and then resize it to what it should be.
One time I restored a SQL2000 DB into 2008 for an upgrade and the SQL Server log gave me a warning that the trans log was in a very high number of fragments.
This is the command:
dbcc loginfo()