I've made a few programs dealing with fire and smoke....

Have a look at
http://www.nitrogen.za.org/projectinfo.asp?id=11 - Firestorm
Dont know how effective it would be for a 3D game, you probably better off with particles, but have a look anyway, it's fun to play around with...

And here's an example of 3D billboard particles:
http://www.nitrogen.za.org/projectinfo.asp?id=16 - Smokestack