Por uma questão de completude.
Eu acredito que este deve ser um comentário sobre a resposta de Regan. Mas como não tenho reputação suficiente, deixarei como resposta.
O gravador DXF suporta camadas 2.5D e, dada uma entrada de linha, deve gerar uma cadeia de linhas 3D no dxf.
No caso de entrada POLYGONS, você deve ter mais cuidado, pois o driver padrão é gerar um HATCH dxf com uma polilinha. E, por especificação de formato, essa linha não suporta coordenadas Z, apenas X, Y.
Se você inserir polígonos, o ogr poderá exportar o dxf com cadeias de linhas 3D representando esses polígonos. Para isso, você precisa configurar a opção de configuração DXF_WRITE_HATCH como NO.
//Bash
export DXF_WRITE_HATCH=NO
ogr2ogr -f "DXF" Contours.dxf Contours.TAB
//Windows
set NEWVAR=SOMETHING
ogr2ogr -f "DXF" Contours.dxf Contours.TAB
Tanto quanto sei que isso não está documentado nem explicado em nenhum lugar, foi adicionado na revisão 24991