Capitalize words in sentence
You're right, your second method is way too complicated. It also doesn't handle the case where the string starts with a space (in which case words[0] will be the empty string and letters[0] will be out of bounds). Since all your method seems to be doing is to capitalize the first letter of the string and lower case everything else, why not just do that?

public static string CapitalizeFirstWord(this string sentence)
{
    if (String.IsNullOrEmpty(sentence))
    {
        return String.Empty;
    }

    String firstLetter = sentence.Substring(0,1);
    String rest = sentence.Substring(1);
    return firstLetter.ToUpper() + rest.ToLower();
}