El filtrado en campos de cadena en Mongodb distingue entre mayúsculas y minúsculas sin usar expresiones regulares. ¿Por qué exactamente no puedes usar expresiones regulares?
Su consulta se puede editar así:
var filter = Builders<ME_User>.Filter.And(
Builders<ME_User>.Filter.Regex(u => u.Email, new BsonRegularExpression("/^" + email + "$/i"),
Builders<ME_User>.Filter.Eq(u => u.Password, password));
Observe los signos "^" y "$" para especificar una búsqueda de palabra completa y, lo que es más importante, el operador que no distingue entre mayúsculas y minúsculas al final de la expresión regular ("/i").
Otra forma sería la búsqueda de texto, que requiere la creación de un índice de texto y no distingue entre mayúsculas y minúsculas para el alfabeto latino:http://docs.mongodb.org/manual/reference/operator/query/text/#match-operation
En C#, usará con el filtro de texto:
var filter = Builders<ME_User>.Filter.And(
Builders<ME_User>.Filter.Text(email),
Builders<ME_User>.Filter.Eq(u => u.Password, password));
Con una consulta de índice de texto en una cláusula OR, también deberá crear un índice en el campo Contraseña; de lo contrario, la consulta OR producirá un error: