Going On-Site to work on computers has always worked to the advantage of the client as all of their equipment is there and often I have found the problem is a peripheral (printer, scanner, router) or a connectivity issue. The client feels more comfortable in their home environment without the hassle of having to dis-connect their equipment and transport it to a shop. I typically request the client write down a list of issues to be addressed and it makes the whole corrective actions I take go much more smoothly as I can work on a prioritized list and resolve the issues one by one. In the process of resolving some of the issues through basic tuneup procedures I have, in many cases, optimized the system to the point other issues have automatically been taken care of. Sometimes it does require taking the system or systems back to my shop for more extensive work, perhaps a reload of the operating system, parts upgrade or whatever. Regardless, I am very careful of client data and have always backed all client data and settings for re-integration into the computer the event it is needed.
In the last 20 years repairing computers I have mostly gone On-Site but in the interest of speedier service over the last few years I have offered remote service using secure remote control software. It removes the need for travel time and in most cases I can resolve the issue without the time constraints associated with travel time.