Been following the thread, it's such a difficult situation, isn't it! Really feel for you.
Are you certain that when you speak to him that it will end in a massive shouting match? is it unavoidable? I'm not saying you can have a quiet little chat over a cuppa and it'll all be over, but I think anticipating that it's going to go nuclear isn;t going to help.
Put yourself in his shoes for a moment: He has these new friends. Cooler, harder friends- he's feeling pretty tough, it's exciting. He loves you and the family but you're a drag in comparison to that lifestyle. However, he doesn't want to give up the safety of home altogether, and he's going to lengths to make sure you don't find out about his habits. He's anticipating that when you find out, you'll go mad, scream, shout, kick him out of the house etc
But you're the parent, you can choose how to react, and how to proceed. You can choose to scream, shout, call him names, accuse him of ruining all your lives, and you'd be in the right BUT you'd isolate him and just make him run.
What you need to do is get the children out of the house for the night, then when he comes home, sit him down and tell him you're worried about him. Speak quietly, and try for eye contact. Just tell him you've been noticing he's lost weight, doesn't seem himself, and youre concerned that he's taking drugs. I know you said you've asked him before and he fobs you off, so when he does that, tell him that you have heard from someone that he's been spending time with dealers, and that you've heard he's doing coke.
Of course he's going to deny it, but tell him there's no point and it's too late for it. You know there's something wrong, and you're very frightened, not only for his health and safety, but for the safety of the family and your other children. You need to make him aware that he isn't just having a laugh and making money, he's endangering his family. Ask him how he would feel if he owed money, and came home to find one of you beaten up, or the house smashed to bits.
Try to have your partner there, and without manhandling him, try to keep him in the house, just quietly insisting that this needs to be discussed now, and if it isn't then you'll have to contact the police. Tell him you can either help him now, or you'll have make decisions on his behalf, and he won't like them.
Was just a thought but do you have any relatives far away where you could send him for a few weeks/months while things calm down? Perhaps someone in the countryside. I have no idea of your financial situation, but if you could afford to do without his wage for a while, and send some money to your relative to keep him? Of course you'd need to make sure he'd paid his debts first or they might come round looking for him.
Sorry such a long post but I think what someone said earlier was correct. Your son isn't a shit, he's a teenager doing shitty things. All is not lost, but you need to be very careful how you approach this.