Yes, you are wrong about the enterprise portion of your question--they are acceptable in an enterprise environment. The issue is typically with developers' knowledge of the DataSet and the mistaken idea that you'll be able to write your own, more efficient, mechanism. That's all before you start recreating common functionality, like filtering for your object collections, Unit of Work mechanisms, etc.
That's a different question than scaling to millions of users. It's likely that you want to trim any of the fat, which requires you customize all your data logic. Going POCO probably is not the right direction. With POCO, you're still mapping non-db-aware structures to a database in a separate layer, adding extra logic that when scaled to a high level starts showing wear and tear on your performance.
You'll need to provide a more specific set of questions to get a better answer, but "enterprise" does not necessarily equal "millions of users". POCO, DataSets, etc lend themselves to quick development (regardless of cgreeno's unsupported opinion) as well as maintainability because of POCO's "simplification" of the model used in the app and the DataSet's wide adoption and understanding (among most developers). But to support millions of users, you're likely going to sacrifice maintainability for performance and scalability design elements. You just need to make the decision which "-abilities" are more important.
BTW, typed DataSets ARE DataSets. Saying typed DataSets are faster than non-typed is like saying I can run fast, but with this name tag on, I can run faster. Be careful to investigate unsupported claims about any particular tool and ask for evidence.