I think you understand at least one aspect of the problem quite well. As you say, words like 'heap' are useful only if they're vague. Indeed, their vagueness seems built into their meanings: they're essentially vague; they wouldn't be the words they are if they weren't vague. The problem is that their vagueness seems to imply the contradiction that is the sorites paradox (see the two SEP entries that I cited here). And it's not just 'heap', a word we might not care too deeply about. Practically every concrete noun and ordinary adjective we use ('car', 'fetus', 'child', 'person', 'tall', 'rich', 'unjust', 'toxic', 'honest', 'safe', and on and on) is essentially vague and hence apparently implies a contradiction. Yet we can't help thinking that plenty of things do answer to those nouns and adjectives. Surely there are rich people and toxic chemicals, but the sorites paradox seems to show that there can't be. It's as ubiquitous as it is hard to solve.
Read another response by Stephen Maitzen
Read another response about Language
I was reading some questions on this site regarding vagueness and the Sorites conundrum and I'm not sure I understand the fascination with figuring out what does or doesn't qualify as a heap. Isn't the word heap useful precisely BECAUSE it doesn't have a strict quantitative requirement? We choose to use the word "heap" and not a different word (like grams, or tons, or twenty-seven, etc.) because it offers us flexibility. I'm not sure exactly why this "puzzle" has received so much attention. The fact that there hasn't been an accepted solution makes perfect sense to me because there is nothing to solve. It seems like trying to apply precision to a word intentionally designed to be imprecise. It seems to me that if we figure out the exact point at which something becomes a heap then we will no longer be able to use the word as freely. Am I misunderstanding the problem? Thanks in advance!