I've always had the same issue with my main hunting rifle, until this year. The rifle is a Ruger Hawkeye in .300WM. A clean, cold bore shot was always a couple inches high and left, so I would always shoot a few fouling shots at the range prior to opening day. This year, I went to the range to foul the barrel and check zero and fired four consecutive shots into one small group (all holes touching) at 100 yards, starting with a clean cold bore.
Unfortunately, I made a number of changes to the rifle between last year and now, so I can't be sure what solved the problem.
1. Started using JB Bore compound. It used to take forever and a day to clean the barrel. Now I use JB Bore compound and it cleans up faster. Many customers claim JB improves accuracy.
2. Changed the trigger spring to reduce the pull weight. The trigger used to be too heavy. I had to think about squeezing it hard enough to shoot. Now, it fires right when I'm ready. Should have affected the accuracy of all shots, not just the clean cold bore.
3. Properly tightened all of the action screws. The angled action screw is supposed to be very tight on Rugers. Somewhere between Ruger's 95 inlb spec and "gorilla-tight." I properly tightened the action screws after changing the trigger spring.
4. New load. I've developed a new load that the rifle really likes. 165 grain Barnes TSX with IMR 4831. Better accuracy than any factory ammo I've tried and better than my previous best handload of 180 grain Nosler BT with RL22.
My money is on the tight action screw and maybe JB bore compound for solving the clean, cold bore flyer.
All of these changes together have resulted in a superbly accurate hunting rifle. That four shot group I mentioned earlier was 2 shots of the Barnes TSX in Federal brass, 1 shot of the Barnes TSX in Win brass, and 1 shot of the 180 gr. NBT in Federal brass. The NBT was lower than the three TSX, but still touching the first three! I couldn't be happier that I have two accurate loads and I can switch between the two without changing zero.