Llamar es un error ambiguo usando Linq

En primer lugar, perdón por las clases de nombres genéricos excesivos. Mi empleador es paranoico y estoy seguro de que deambula por este sitio. Ok, así que tengo este código:

var fooObj = new MyFooClass()
{
    fooField1 = MyEnum.Value3, 
    fooField2 = false,
    fooField3 = false,
    fooField4 = otherEntity.OneCollection.ElementAt(0) as MyBarClass
}

donde otherEntity.OneCollection es un ISet. ISet es una clase de colección NHibernate que implementa IEnumerable. Si intento compilar este código obtengo este error:

Error 2     The call is ambiguous between the following methods or properties: 
'System.Linq.Enumerable.ElementAt<MyFirm.Blah.Blah.ClassyClass>    (System.Collections.Generic.IEnumerable<MyFirm.Blah.Blah.ClassyClass>, int)'
and 
'System.Linq.Enumerable.ElementAt<MyFirm.Blah.Blah.ClassyClass>(System.Collections.Generic.IEnumerable<MyFirm.Blah.Blah.ClassyClass>, int)'    

Pero si quito el uso de System.Linq al principio de la clase y cambio el código a esto:

var fooObj = new MyFooClass()
{
    fooField1 = MyEnum.Value3, 
    fooField2 = false,
    fooField3 = false,
    fooField4 = System.Linq.Enumerable
                     .ElementAt(otherEntity.OneCollection, 0) as MyBarClass
}

se compila y funciona. (? operador para comprobar si OneCollection tiene elementos eliminados en aras de la claridad)

¿Alguien podría explicarme este error?

Si es relevante, estoy usando Visual Studio 2008, apuntando a .NET Framework 3.5 y usando ReSharper 5.1.

NOTA.- Editado para aclarar qué IEnumerable concreto es la colección, perdón por eso.

Respuestas a la pregunta(2)

Su respuesta a la pregunta