Smoke Domains in Blender
You can use a mesh besides the cube as a smoke domain. I would however always stick to a boxes because Blender smoke simulators uses voxels (small cubes). And  other meshes can cause unpredictable behaviors, although I believe this has improved in recent GSOC. When using other meshes, depending on the smoke simulation's resolution the smoke might b outside of the domain.