Something I learned (probably in middle school) that always bothered me is that the truth value of "and" and "but" are basically the same.  If you were going to assign a truth-functional interpretation of "but" in first-order logic, it would be the same as "and".

There's been a explosion of logical systems that are alternatives to first-order logic, such as fuzzy logic.  Is there a logical system that can distinguish "and" and "but"?