I believe this is because the conversion may be registered in a static constructor that hasn't executed yet at the time of the failure.
Found this bug on stackoverflow, just wanted to add also seeing this on 'openid.realm', as far as I can trace back its failing in Messaging\Reflection\MessagePart.cs when trying to do a Convert.
Im using ASP.Net (4) no MVC and its not intermittent.
Error while reading message 'DotNetOpenAuth.OpenId.Messages.CheckIdRequest' parameter 'openid.claimed_id' with value 'http://miicard-dev1.miicard.com:82/card/stuart'. Invalid cast from 'System.String' to 'DotNetOpenAuth.OpenId.Identifier'. (Contact: , Reference: )
Fixes InvalidCastExceptions for Identifier and Realm conversions
that can result from receiving a message before the static constructors for those types have executed.
This corrects the regression introduced in v4.0.0.