Generic delegate types are always type invariant.
I ran into an issue similar to what is outlined at the link below the other day, and it caused some confusion because I didn't understand why I had to cast my collection.
http://www.theserverside.net/blogs/thread.tss?thread_id=47323