Is there a good way to separate touching collisions from overlapping collisions?

I’m working on a game (my first) where objects touching is A-Ok, but I want to detect overlapping collisions ahead of time, prevent them, and react. This seems like a pretty basic and common thing, such as a character walking along a platform (even though by touching it it’s ‘colliding’), but of all the many many collision detection tutorials I’ve looked at, none of them have covered this case–they all assume that objects touching should be indistinguishable from overlapping. I’ve been using a workaround of a slightly smaller hitbox to use for collisions, but it has issues of it’s own that make it not so good. So basically I’m looking to redo my CD from scratch.

So, like I said, I’d like to know how to differentiate between ‘touching’ collisions and overlapping collisions, but even a way to keep touching collisions from triggering entirely would work.

Thanks in advance.