Traditionally, a CSV file would not be expected to have field or column headings on the first row. But this has been a requirement in a number of environments that I have worked in. Providing this has been a challenge until recently. In most Crystal environment, a CSV export would take every visible object on the page and make it into a column. The last column is often a column of ones, created from the page number in the page footer.
Up through CRvXI release 1 it was possible to get column headings to print as the first row of the CSV export, but it was a complicated process. It involved modifying the report, installing a special driver and even tweaking the registry settings for Crystal Reports. The steps are outlined in knowledge base article c2014451 which is no longer available.
If this is a regular requirement in your environment, then you should seriously consider an upgrade to XIr2 or CR 2008 (also known as versions 11.5 and 12). I just noticed that the CSV export in these versions has a new check mark asking if you want to ‘isolate’ the Page Headers. If you check this property the values of the page header become the first row of the CSV export.
Note that if you are on CR v8.5 you may need an updated copy of u2fsepv.dll. I think the minimum version of this DLL that supports this method is 22.214.171.1245. If you can’t find the DLL I can help there as well.