Firtst of all, normal maps are becoming … well … normal. Even the low-cost engines like 3D GameStudio, DarkBASIC Pro, etc are able to utilize normal maps … they are simply a form of a shader. So, it is not just the AAA engines that enable people to utilize normal maps.
In any case, I do not personally think that ZBrush, in its current form, is a good tool for real-time 3D games and applications. It is not a very good low-poly modeler (even though you can do it … it just is not as friendly as doing it in a traditional modeler like Silo, MAX, etc).
Secondly, ZBrush is not suited for painting a skin for a real-time 3D model. Often times RT3D models are limited as far as the size of the skin. Skin sizes may be something like 512 x 512 pixels or 1024 x 1024, etc. Texture space is at a premium and if you are planning to display more than one model and also have textures on your level geometry, then you need to keep skin sizes down. Size the skin size needs to be kept down, then a good UV map is a must for any RT3D model. Extra space on the skin is givin to important areas like the face and much less area given to unimportant areas like the underside of the shoes. We usually use a formula like 1/4 of the space for the face and then fit the rest in and scale it according to the details needed.
ZBrush, as far as I know, does not have a way to assign more texture space to one area of an object than another. Therefore, you need to create a UVW map in another app outside of ZBrush and then import that model into ZBrush for painting.
To conserve texture space often UVs are overlapped. For example, why have two undersides of shoes, especially if the texture on them will be exactly the same? So, the skin artist will place the UV for one sole over the top of the other. This frees up room on the skin for other elements. Sometimes we will use only half a face and mirror/overlay it on top of the other half. There are all sorts of tricks like this to maximized texture/skin space.
ZBrush does not support UV mapped models with overlaying UV faces. If you attempt to paint them you will either get strange effects or ZBrush will lock up and then crash. So, if you UV map your models this way (as is very common for game models) then you cannot paint the model in ZBrush (as it is).
Oh, there are some tricks that could make this work (deleting the parts of the model you intend to mirror, create the UV map, export from your 3D app, import into ZBrush, paint it, export from ZBrush, import into your 3D app, duplicate the missing parts and then merging the model), but it is a bit more work than taking the traditional route of simply exporting the UV map and painting it in Photoshop.
I would love to fit ZBrush into my pipeline for RT3D content creation. It looks like the only way I will be able to do that is if and when I start using normal maps. Then I can use ZBrush to make high detail models from my low poly ones.
Personally, I think that ZBrush has a long way to go to be utilized well in a game environment.