Consider the following plain TeX file.
\tracingonline2
\showboxbreadth20
\setbox0\hbox{CATAPULT}\showbox0
\setbox0\hbox{C.A.T.A.P.U.L.T.}\showbox0
\bye
It produces the following log
> \box0=
\hbox(6.83331+0.0)x54.72229
.\tenrm C
.\tenrm A
.\kern-0.83334
.\tenrm T
.\kern-0.83334
.\tenrm A
.\tenrm P
.\tenrm U
.\tenrm L
.\kern-0.83334
.\tenrm T
! OK.
l.5 \setbox0\hbox{CATAPULT}\showbox0
?
> \box0=
\hbox(6.83331+0.0)x78.61127
.\tenrm C
.\tenrm .
.\tenrm A
.\tenrm .
.\tenrm T
.\tenrm .
.\tenrm A
.\tenrm .
.\tenrm P
.\kern-0.83334
.\tenrm .
.\tenrm U
.\tenrm .
.\tenrm L
.\tenrm .
.\tenrm T
.\tenrm .
! OK.
l.7 \setbox0\hbox{C.A.T.A.P.U.L.T.}\showbox0
Which shows that without the dots, the font supplies some negative spacing to account for the visual mis-match in ATA However with the dots not only do you not get that, the font supplies a kern to pull the . closer to the P which in this case exaggerates the differences. I think you need to add \kern-0.01em between the letters for whatever values you judge by eye to look better,