Seeing as the error message is coming from SQL Server, you'd think SQL Server's web site would have some information, wouldn't you? The obvious thing to try is search. Judging from the information in the first hit (in fact, just by looking at the error message), either upgrade the client library or don't use Unicode data types in the database.
Oh, look at this note on the [man]mssql[/man] page:
Note: In Windows, the DBLIB from Microsoft is used. Functions that return a column name are based on the dbcolname() function in DBLIB. DBLIB was developed for SQL Server 6.x where the max identifier length is 30. For this reason, the maximum column length is 30 characters. On platforms where FreeTDS is used (Linux), this is not a problem.
So that explains why you can't do stuff that was only introduced in SQL Server 7.0. Maybe replacing the version of ntwdblib.dll you're using now with a new one from the client distribution (as suggested in the user notes in [man]mssql_connect[/man] would work.
You know, I didn't know any of that ten minutes ago - every day's a school day.