First, understand why Villain's willing to go broke on a draw.
For a flush draw on the flop, where you have no pair and your opponent has top pair (and he has no way to improve beyond a straght), you've got 9/47+9/46 = 39% chance of hitting your flush. It makes sense to put up $1 if you're opponent is going to give you $2 if you hit.
For a fd + open ended straight draw on the flop, you've got a monster draw - you're actually a favorite to win the hand against an opponent with a single pair - you've got the 9 flush cards and 6 more cards to make your straight (don't double count the 2 straight cards that also make your flush), so 15/47+15/46 = 64.5% - so even if you have exactly nothing on the flop other than your fd+oesd, statistically you're ahead of Villain.
Draws come in different combinations and different situations - maybe you think you have two overcards plus the fd, and can add those six outs to make your fd a monster draw, maybe you have a gutshot sd + a fd, which is pretty much a coinflip against a single pair, etc.
Villains also come in different flavors - villains who understand the above and villains who don't - so sometimes villain is just
gambling and sometimes villain is making a play as a favorite and knows he's the favorite.
How do you combat this? First, try and figure out whether villain understands the above. If he understands the above, you can combat the 9 out flush draw by making it too expensive for an intelligent villain to call - 2/3+ sized pot bets are a good way to accomplish this, as it doesn't give the correct odds to call. A knowledgable villain will generally fold here (not going to talk about implied odds here, post is already too long). If Villain understands above, you won't be able to get him off of a monster draw - in fact, he's likely to raise you and try and get your money in the pot as quickly as possible.
If Villain doesn't understand above, simply make it too expensive for him to continue drawing to 9 outs with 2/3 sized pot bets, and be very careful if it looks like he may have more than 9 outs. If he's going to simply gamble on the 9 out flush hitting, you will win more money over the long run, though you will lose in many situations in the short run (generally you'll lose 39% of the time, but you'll win 60% of the time). You want to make sure you're getting value for the 60% of the time you'll make money here.