I must say that I make extensive use of Bezier Curve objects in Blender, I use them a lot more than I use actual mesh objects actually.
I work mainly in architecture though, so I mostly make archviz and interior decoration projects. I know this is not a popular nor a 'standard' use of Blender, and I am perfectly aware that most people's workflow is far different from mine, even in similar business areas, in fact I don't think I've ever seen any anyone else use a similar technique.
That being said I find that bezier curve objects are very useful mainly for extrusion based shapes which are common in this business.
In building and construction area, Bezier curve objects are versatile for building walls, which can conveniently be defined as an extrusion of an architectural plan outline that is often provided by the client.
Facades and elevations can also be easily defined with a bezier curve from client provided elevation drawings since again they are mainly bi-dimensional extrusion structures that are well defined from a 2D closed curve with extrusion, along with windows, doors and stonework around them.
Floor areas (like an area with a certain type of finish), concrete slabs, and arbitrarily shaped areas with mixed curve and straight shapes, and extensive ceilings with wholes for lighting equipment, are also easy to define using bezier curves, mainly because you don't have to worry about maintaining good topology to close all gaps and fill the ends. They are inherently flat by nature with a simple extrusion that can be defined procedurally (no destructive modelling), and you don't have to manually deal with topology because they are procedurally filled and automatically tessellated.
A lot of other real world flat objects (like table tops, wood board based shapes, flat sheets) benefit from the same advantages like easy extrusion, tessellation and beveling.
Bezier curves can also be useful for other more three-dimensional objects with tube like extrusion geometries like pipes, wires, railings and other tube based shapes.
Other than that, they are also very useful as complement for more illustration based graphical design type of work, like Logo design and symbol creation, or 2D type of motion graphics often used in TV, video and animation work.
NURBS surfaces on the other hand are more suited for smooth almost organic-like shapes used in vehicle design like cars, boats, airplanes, or more aerodynamic industrial design objects.
They differ from subdivision surface because of the emphasis on precision, trimming, and Boolean operations.
Looking at Blender alone it's hard to imagine using them as an actual full features modelling tool, since Blender's NURBS tools are admittedly a stub, with very limited features and lacking tools.
They are there more as a remnant of the past than as an actual production ready tool. Other dedicated software like Rhino, MoI, Katia, etc. has a lot more usable and versatile NURBS modelling tools, capable of very accurate surface definition, surface trimming, Boolean operations, etc.
They are very suited for actual technical drawing extraction, since correct and exact elevations, plans and sections can be extracted from a NURBS or Solid based 3D model.
I don't frequently use them myself, but from what I gather they are mostly used for animations purposes, mainly to define animation paths objects must follow, sort like a railway. They are probably mathematically more accurately and precisely defined, yielding smoother animations and avoiding jitters and sudden movements while animating.