After trying out a few spacing methods with no success, I felt the need to devise my own system, which has proven to generate fairly good results (not just for me but also for other people that have used it). The method is definitely not an outstanding innovation, nevertheless I haven't come across anything exactly like it elsewhere. Basically I took advantage of adhesiontext, the text tool I had developed earlier.
I can't guarantee this method will work on every typeface. However I'm able to say that it made miracles on mine, as some could attest. Perhaps with a few adaptations it can still be useful and applicable in other cases.
I would also want to warn that, as it will be obvious, this is a REALLY tedious process. Nonetheless, the outcome will most likely be quite rewarding, and time-saving.
Finally I would like to add that this procedure might also help to drastically reduce the number of kerning pairs needed (at least that's what happened to me...).
The Method Used
1. I divided the lowercase alphabet in 3 groups, bdhilmnopqu, acefjkrt and gsvwxyz, on the assumption that:
a) the space on both sides of each element of the 1st group can be determined, and relates to the space attributed to, at least, one side of another element in the same group, which has a similar shape. (e.g. the space on the right side of b and p is the same as o. Or, the space on the left side of h is the same given to the same side of l);
b) the space on one side of each element of the 2nd group is determined, and is equal to the spaces given to the elements of the 1st group with a similar shape (i.e. the space on the left side of k is the same given to the same side of h, despite the fact that the space on the right side (of k) has no relation with any character in the 1st group);
c) the space around the elements of the 3rd group has no direct relation with any of the other characters in the alphabet. (this is very design-dependent, as for example if g is not binocular-style, it should be included in the previous groups).
2. I spaced n and o visually, balancing the white area between and inside the characters (the string noonnon is good for that). Then replicated those amounts (with the necessary adjustments) to the rest of the elements on the 1st group, always keeping in mind to assign the same value to similar/equal shapes. (e.g. the left side of m might receive the same amount of the same side of n. But (for a serifed typeface) p might need less space on the left side, because it might not have a serif on the baseline)
3. I printed a few test documents only with words that could be set using characters from 1st group, and made the necessary corrections/adjustments.
Note: Here I would like to say that, in this first trial, it was clear that some of the glyphs had to be slightly changed (specially the o), because they were "breaking the rhythm/pattern".
4. After a *few* other print-outs and tons of adjustments, the elements of the 1st group were finally acceptably spaced, so it was time to do the next step.
5. The next step consisted on adding, sequentially, each element of the 2nd group to the 1st group, and space it against the elements of the 1st group. This meant generating test documents with the set of characters bdhilmnopqua and space the a, then bdhilmnopquc and space the c, and so on.
Note: It's very likely that the elements of the 1st group will still need some fine adjustments along the way, which could also be used on characters with related shapes.
6. The following step was simply doing the process described above, but this time with each element of the 3rd group.
7. Finally, I set a "normal" text and the overall spacing was just about right. Some fine-tuning, and from this point on was "kerning time"...
That's about it.