Dan in Vermont,
There is no easy way to do what you want. I too like to get better detail on hit locations, armor value, ricochet chance, and behind armor locations that can be damaged like engine/transmission, fuel, and ammo in a playable manner.
However, about 8 years ago I came up with a solution. The book "WWII Ballistics and Armor" and the US Army Ballistics Research Lab have the formulas for determining the average dispersion/MPI of a shot. There are also available the real ballistic tables (velocity, maximum ordinate, etc.) for the most common WWII and Cold War guns, some of which were developed by the CIA. I took this data and "error budget" average MPI information into a spreadsheet using their formula in 100m increments.
Rather than the player rolling a D20 for a hit or miss like regular games the D20 roll randomizes the average MPI distance like a bell curve. No player computations are needed! The first Ranging shot includes an average 20% range estimation error. Ace crews have a 10% range estimation error and poor crews have a 30% range estimation error.
Accuracy penalties (poor crew, moving target, poor lighting conditions, etc.) push the accuracy range out further in 100m increments which means a greater dispersion. An accuracy bonus, like an Ace crew, is in lesser 100m increments decreasing the average dispersion.
The next step is to model the target in different aspects. Using the video game examples (see below) I marked locations where the engine/transmission (green), ammo (red), and fuel (blue) are located.
The above image (an older one) shows the Tiger I front aspect. The Russian player has laid his transparent gun sight reticule over the target in the oval area for aiming center mass. The player can aim anywhere in the oval. At shorter ranges, he can select any aim point.
Th lower right image shows how big of a hole will be left depending on the size of the round.
After "aiming" he rolls a D20 and two decimal dice (1-00 result). The 1-00 result will tell you the direction the round went as seen around the target reticle. The D20 result randomizes the average MPI value and a ruler is laid from the aim point to the direction the round went.
Now you can tell the result of where the round lands, the armor value, and the ricochet chance (not in this example) if the fuel, transmission, engine, or ammo is hit, and what crew members may take a direct hit.
There is no need for a target size modifier or a hit location roll. If firing at a moving target a single die roll will determine how far to the right or left the round went depending on the target speed, aspect, and range.
Realistically, rounds tend to group and disperse around the aiming point. They don't "randomly" hit somewhere on the target unless the average dispersion is as large as the target.
This could be adapted to any game by replacing the gunnery and damage rules with this system. Most systems require a die roll to determine hit or miss, hit location, penetration chance, and damage roll. This system does all of that, in greater detail, with one die roll.
Depending on where the player aims, virtually any target location can be hit. We've had exposed tank commanders get hit in the face, a Sherman 75 hit a Tiger I gunsight making the gun useless, rounds ricochet off armor surfaces with a 70+ degree compound angle, vision ports and turret rings are hit, etc. Players can aim at turret rings, vision ports, bow machine gun locations, ammo and fuel locations, etc.
For that amount of detail, it actually does not slow down the game very much as compared to other games.
A simpler version is a customized critical hit chart. When rolling a D20 for the hit location a 20 is a critical hit. Below is the one for the German Panther reflecting weak points that can be hit from different target aspects.
Wolfhag