I solved that problem by inspecting each apartment (plumbing, carpet, etc) personally twice a year. I have an inspection form (same as my move-in/move-out inspection form) that I use to keep track of problems. If there is any damage beyond normal wear and tear, I bill the resident as we go. Based on the inspections, I created a maintenance to-do list that was done to my schedule. It was win-win because I caught many problems before they became major issues.
I also took pictures of the apartment upon move-in/move-out to support any charges I made against the security deposit. I included the twice yearly inspections in the rental agreement along with many other items. I ended up with about 5 pages of rules based on what residents actually did during their residences.
I also had all the carpets cleaned once a year, splitting the cost with each resident. If they didn't pay minor amounts, I deducted it from their security deposit when they moved out.