What's going here is that most Americans have what's known as the marry-merry-Mary merger[1]. Virtually all English speakers outside of North America, as well as some Americans, mostly on the East Coast, pronounce the vowels in these three words differently -- marry is pronounced /mæri/ (/æ/ is the vowel in "cat"), merry is /mɛri/ (/ɛ/ is the vowel in "pet"), and Mary is /meri/ (/e/ is the vowel in "bait"). In those dialects, any vowel can proceed an /r/ that's intervocalic (i.e., both preceded and followed by another vowel), so /r/ acts like any other consonant in that sense.
However, in most American dialects, marry-merry-Mary are all merged and pronounced identically (IPA: /mɛɹi/, though the exact vowel isn't important here, and all three vowels generally sound the same to merged speakers). Furthermore, the first syllable of all these words is usually pronounced the same as the vowel in mare (/mɛɹ/).
So let's put this together. The word "care" is pronounced /kɛr/ in both merged and unmerged dialects (or /kɛː/ if you don't pronounce the /r/ there). In unmerged dialects, the word "character" is pronounced /kærəktər/, so it doesn't make sense that you'd truncate it to /kær/, because /ær/ (or /æː/) at the end of a syllable doesn't occur in any English dialect[2]. In merged dialects, however, "character" is pronounced /kɛrəktər/, so it makes sense to truncate it to /kɛr/, which is a homophone of "care".
[1]: https://en.wikipedia.org/wiki/English-language_vowel_changes...
[2]: Except Irish English, see https://news.ycombinator.com/item?id=11673067.
[3]: I speak a merged dialect, and pronounce "char" as /kɛr/ when I'm reading C code.