OK my turn!
some things people map not have noticed about this method of normal mapping being discussed.
Firstly using overlay or hardlight and layering multiple normal maps does something like this-
http://i25.photobucket.com/albums/c85/lego-botz/textures/OverlayHardlightlayerproblems.jpg
http://i25.photobucket.com/albums/c85/lego-botz/textures/OverlayHardlightlayerproblems2.jpg
http://i25.photobucket.com/albums/c85/lego-botz/textures/OverlayHardlightlayerproblems3.jpg
notice in the first picture those lovely green and red colors. But as the layers pile on, it turns into the blue, purple and pinks most associated in normal maps. I like the greens and reds myself. I have to make sure that the layers are keeping those greens and red intact. This is another area crazybump comes in. But! photoshop is pwnage... you can use a layer at the top set to "color" blend mode.
You'll have to play with that. And must normalize if you do that one.
Another downside with this method of using the nivdia filter, heavy bumping, and overlaying, the height map must be clean as a whistle. Bumping anything by 80 is going to be very noisey if it isn't clean. In oblivion, a little noise actually fits in, but whats looks good in oblivion is very small blip to the world of normal mapping.
The other area crazybump comes in handy is anolyzing image for 3d shapes. I don't know how else to come up with a normal map like it. I like anyway.
http://i25.photobucket.com/albums/c85/lego-botz/textures/cobblestoneCrazybumpedLayer.jpg
This is 50% "image for 3d" and something like 70% strength and some messing with the detail levels.
L@zarus- nice normal. totally worth spending as much time as you need to get a height map.
I can only illustrate a specific example. some height maps are easier than others, and can take quite a bit of time. I am working with a 2000x2000 pixel image here.
On this texture, as the stones are a tad lighter than the rest...
http://i25.photobucket.com/albums/c85/lego-botz/textures/cobblestonediffusefinal.jpg
I made a "matrix", I only expand the canvas size around 500 pixels or less on a 2048x2048, just to save me from overloading on my 1gb of ram...
with snap on, I make a few copies of the texture map, and pop them into place. merge it down. keeping the orginal layer intact. make a copy of the matrix. On the matrix I will probably high pass it, but keep a bit of detail in there. I will then darken/contrast this layer so that everything that isn't a stone is black.
This is why I choose to use overlays and not color dodge/burns- Make a new layer, set it to overlay. With a white brush, a little soft, brush in over the stones. keep it well away from the areas that are stone. I spend 15-20mins on this. Not too anol about it. Now I could do the opposite, go over the rest, with a black brush, a little soft. Now if the grout areas on the base layer are black. any overshoot from the overlay white layer will not show up on that area. Now that I have painted that white overlay layer, the black overlay will not show on pure white. This means you can't draw outside the lines. I could really flood fill a whole layer in white, set it to overlay and it'll never disrupt the black areas.
http://i25.photobucket.com/albums/c85/lego-botz/textures/cobblestoneHeightmap.jpg
I thought that would do.
and the normal map- (after some tweaking

)
http://i25.photobucket.com/albums/c85/lego-botz/textures/cobblestoneNfinal.jpg
and a pic of it from the CS
http://i25.photobucket.com/albums/c85/lego-botz/textures/CScobblestone.jpg
sorry for the rambling