First of all: Don't listen to half of the people in this thread.
FYI, you can smoke 2 days before a drug test and pass it completely fine. Now here's some advice.
1st. Do not drink JUST WATER for these next few weeks. It dilutes the sample and will result in the sample not being usable, which means you will have to take another test. Mix it up with apple juice, other juices, and even soda. With 3 weeks your going to be able to completely flush out your system.
2nd. If you do not think that just drinking water and clearing your system is enough, then begin to do some working out/exercising. If you don't attend a gym, or do any extracurricular sports/activities than your best bet is to take a 1/2 mile - 1 mile jog every other day. It will get your body sweating and get the THC out of your blood stream.
3rd: Remain positive, you ARE going to pass this test. I've had plenty of friends smoke 3 days before their test (keep in mind they smoke almost every day) and pass just fine. Do as I said above and you'll be completely fine. You can continue smoking if you want, just make sure to stop at least a week before the test to make sure you have enough time to pass.