Если вы запустите как есть, все 4 будут истинными.
string Message = "No need of validation";
Console.WriteLine("1 : {0}", Message.IndexOf("No need of validation", StringComparison.CurrentCultureIgnoreCase));
Message = "No need of validation for certain members only";
Console.WriteLine("2 : {0}", Message.IndexOf("No need of validation", StringComparison.CurrentCultureIgnoreCase));
Message = "Validation for this member - No need of validation";
Console.WriteLine("3 : {0}", Message.IndexOf("No need of validation", StringComparison.CurrentCultureIgnoreCase));
Message = "no need of validation";
Console.WriteLine("4 : {0}", Message.IndexOf("No need of validation", StringComparison.CurrentCultureIgnoreCase));
Это потому, что игнорируя регистр, строка 'сравнения' существует где-то в каждой строке вашего сообщения, поэтому индекс всегда будет 0 или выше.
Если вы хотите сравнить, равны ли строки друг другу независимо от регистра, вам следует вместо этого использовать строку сравнения:
Message = "No need of validation";
Console.WriteLine("1 : {0}", string.Compare(Message,"No need of validation", true));
Message = "No need of validation for certain members only";
Console.WriteLine("2 : {0}", string.Compare(Message, "No need of validation", true));
Message = "Validation for this member - No need of validation";
Console.WriteLine("3 : {0}", string.Compare(Message, "No need of validation", true));
Message = "no need of validation";
Console.WriteLine("4 : {0}", string.Compare(Message, "No need of validation", true));
Что даст вам желаемый результат.