On one 'Bored Friday', I once did something similar:
I took my transit network and selected my base street layer by the transit routes. I then took the subset of the streets layer and ran the 'Feature to Point' (ArcInfo) tool on it to give me center points of those street polylines. I then buffered those points by 1m and ran a 'Spatial Join' on the buffers against the original transit routes. This gave me a count per street of the transit routes.
I joined the counts back to the streets layer subset and then set my line widths to reflect the join counts.
I've skipped a few steps and my data was all derived from the same base streets layer but after a few hours of playing with it I got a pretty decent-looking transit flow maps.
Unfortunately not as nice looking as your example but once the graphic designers got the PDF they made it better looking. I'm not at the same firm now otherwise I'd attach a sample.