En la actualidad, las diferencias en los drivers y el nivel de apoyo a ODBC reducen el potencial de ODBC:
Access, Delphi, y Visual Basic soportan directamente ODBC.
Bajo C++, y en Visual C++, puede usar el API ODBC de C++.
En Visual C++, puede usar la clase CRecordSet, la cual encapsula el API ODBC dentro de una clase MFC 4.2. Es el camino más fácil si está desarrollando en C++ para Windows bajo Windows NT.
"¿Si escribo una aplicación para Postgres puedo hacerlo realizando llamadas ODBC al servidor Postgres, o es solo cuando otro programa de bases de datos como MS SQL Server o Access necesita acceder a los datos?"
El camino es el API ODBC. Para código en Visual C++ puede informarse más en el sitio web de Microsoft's o en sus documentos VC++.
Visual Basic y las otras herramientas RAD tienen objetos Recordset que usan directamente ODBC para acceder a los datos. Usando los controles de acceso a datos, puede enlazar rápidamente con la capa ODBC de la base de datos (muy rápido).
Jugar con MS Access le ayudará en este cometido. Inténtelo usando Fichero->Obtener Datos Externos.
Sugerencia: Primero tendrá que establecer una DNS.