Why would you ever use an interface if you are only going to have one implementation of it?
It bothers me too when people make an Interface, an Abstract, and an actual implementation for every class, even if there will never be more than one, and the 3 files are all nearly empty.
However, big uses would be:
Future expansion / enhancements placeholder
Easy to implement Inversion of Control / Dependency Injection
Easy to implement mocks for unit testing.
*Edit:
I noticed you have Spring in your tags too. If using Spring, then #2 above is probably the biggie. Its easier to design classes that expect interfaces, and you can swap out actual implementations of the interface in the Spring configuration (Dependency Injection).