Define who you believe your customers to be. Are they the people who buy your company's products, are they the people within your company who might use and test your code, or are they perhaps both? When you write your code and submit it for testing, do you complete the entire product first, or do you deliver it in stages to be tested and signed off?
Whether Agile works in any company all comes down to the mind-set of the the people working with it, how the team thinks about it, and how committed they are towards making an Agile methodology work for them.
Ultimately, Agile is suited to the team that wants to make it work for them, and yes this means it can be successfully implemented in even some of the more "scary" development situations provided the methodology is adapted to suit. It doesn't matter if you feel your company is service or product focused.
The thing to remember is that going Agile isn't about copying someone else's methodology verbatim, which would be fine if the methodology can gel with your particular company's needs. In the end, when changing the way you go about writing software, something has to give. It's about achieving a compromise between your vision of an agile workflow, and the existing business processes that may need to be modified to accommodate agile processes. This is not something you can easily change overnight, but which changes gradually, and in stages as you fine tune both the agile and business process so that they will gel well with each other. It may also require a shift in your thinking, so that you apply all of the agile concepts that your developers need, and ignore the ones that might create problems for your team, and your "agile customer" becomes a "customer representative" within the company who takes responsibility for being the product champion, acting as the customer's "voice" in the team just to keep everyone firmly grounded.
In the company where I work, we probably only do about half of the things that all of the standard methodologies recommend we should do, and for the rest, we've fine-tuned things to suit ourselves. Whenever we run into something that is inefficient, we implement changes to the method to deal with problem. This can happen from project to project on rare occasions, depending on who we are working with, and who we end up working for. So in the end, how you specifically go about implementing agile in your workplace is really down to you to ultimately decide. The key to it all is to simply keep an open mind, and to regularly re-evaluate your team's performance, removing practices that make things worse, and introducing the practices that make things better.