In practice, I find dependency-injection based designs are, while slightly more verbose, a lot easier to deal with because there is more control, less coupling between classes, more flexibility with implementation and allows wider use of existing classes throughout an application.
It depends on how clearly defined or intuitive the dependencies are as well. Coming from a native C++ background, I've found parts in .NET where the dependencies where are plainly obvious and provided a lot of flexibility, but other areas that I just didn't understand at all and couldn't immediately understand the requirements to use a certain piece of code or object, due to a variety of factors including class naming and my knowledge of the system.
I say, if you're going to design your code with dependency injection in mind, just try to make the dependencies as clear and intuitive as possible.
That's my idea of it anyhow.