We do mostly scrum projects at the customer site. Hardest part in my experience is finding a good product owner in the customer organization:
- Too many people think they should be the product owner,
- The product owner has a hard time following the pace of the team
- Product owner has a hard time getting all the detailed information the team needs
- Moving items down the product backlog to add something with a higher priority is difficult
- etc.
Training internal teams to use scrums is doable, bringing in your own scrum master is doable, but a good product owner should be part of the client organization. It's harder to train this external person.
Having a proxy product owner, who works together with the customer product owner does help a lot.