A user recently sent me this error message (without a lot of extra explanation, mind you) and was trying to figure out why his input/output parameters weren't working with his stored procedures:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
[Microsoft][ODBC SQL Server Driver]Optional feature not implemented
Without knowing the rest of the story, I see a couple of problems:
1) The user is using ODBC to connect to his SQL Server database. This is not required under ADO and can be bypassed with a DSN-less connection (covered numerous times at ASPTechniques.com).
2) The driver he is using for ODBC does not support input/output parameters (or something else related to the transaction.
The solution I would try first, if possible, is to try connecting directly to SQL Server via OLE DB instead of ODBC. That would probably clear up the problem immediately, since the OLE DB provider supports a much richer set of functions for SQL Server.