Существует разница: .StartsWith выполняет сравнение с учетом культуры, в то время как .Equals (то, что вы используете с ==) - нет.
Итакесли у вас есть две строки, которые отличаются, когда вы сравниваете их посимвольно (== возвращает ложь), но в вашей культуре они считаются равными (начальная строка возвращает истину), вы можете получить этот результат.
РЕДАКТИРОВАТЬ Если я попробую ваш пример значений с этим:
bool b1 = word1.StartsWith(word2, StringComparison.Ordinal);
bool b2 = word1.Substring(0, word2.Length).Equals(word2, StringComparison.Ordinal);
оба возвращают "True".