When using Ace.OLEDB to load up files, I was having sporadic problems with the entire SQL Server process crashing with this exception. I believe it's because you shouldn't allow things to run in-process, so I tried to disable it:
Exec master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 0
But this just caused more errors with it being unable to initialize components. I ended up searching far and wide for a solution, and I found it here: Permissions needed to set up linked server with out-of-process provider.
It's probably the most important stability-related article I've ever read. You have to jump through hoops to configure SQL Server to allow ODBC imports safely and it details the steps to do so. I've found it effective on a dozen different servers over the past few months with no ill effects.