I want to use OutputDebugString() in my application and then have the option to show it in a separate viewer when the application is deployed in the field.
CnWizards contains a tool, CnDebugViewer.exe, which can capture OutputDebugString (should be run as administrator in Windows 7).
Not like DbgView, CnDebugViewer can create separated tabs for different applications.
CnPack contains an unit, CnDebug.pas. Using this unit, you can trace typed objects, collections, exceptions, memdump, etc. With CnDebug.pas, you also can set whether to autostart CnDebugViewer, whether dump to file while sending debug messages, etc.