A lot of people seem to learn this word from A Clockwork Orange. :|
друг is a delicate word. In Serbian it has more of a connotation akin to "comrade". In the times of communism, people called each other друг in Serbia, analogous to comrade. But it also has a second meaning, which I think became more prevalent after the downfall of communism, which is "friend", but always a friend, whom you are not very good friends with, more like a peer, work colleague or so. On the other hand, Russians used товарищ back then. Can someone clear up how this word (друг) is/was used?
«Друг» is a 'close friend'. Like, really close, someone who is expected to be reliable, understand when you need help and help you (and this is mutual).
(There's a feminine variant, «подруга». But it's not just 'close female friend', it adds a flavour of some women's sisterhood: 'woman's close female friend'. At least I think men are unlikely to use «подруга» to their female friends, we still say «друг». When men use «подруга», it's more likely to mean 'a girlfriend'. But in general men tend not to use it.)
«Това́рищ» is someone with whom you share something (work, school, or perhaps communistic ideals; :D or perhaps това́ры 'good' you're selling :D) and perhaps have known for some time, but you don't neccessarily have much in common except the thing (work/school/ideals) that unites you.
There's another word, знако́мый / знако́мая 'acquaintance'. It's often used for people you know for some time, but not ready to call them friends.