I got a 'D' in Chemistry. My friend says that if I re-take it and get a 'B' my grades will be averaged to a 'C'. Is this true?
Only in the sense of your cumulative GPA. But old grades never change. The 'D' will still be on your transcript, and still continue to bring down that term's GPA. In other words, you'd do better to simply take, say, a Linguistics course the second time around and get a 'B' in that. The two grades will still average to a 'C', and you'll actually earn credit for the Linguistics course.
I failed Calculus. Should I repeat it to improve my GPA?
Again, nothing will take that 'E' off your record. So there is no reason to repeat a failed course unless you really want to learn that material, or you need it as a prerequisite to later elections or to meet a specific program requirement. If you've decided to be a History concentrator you may safely forget about the Calculus altogether, and let your History courses raise your GPA.