I believe you're referring to systems without memory management, and specifically, Operating Systems running on hardware without MMU (memory management unit) and without virtual memory.
Programs are actually pretty fixed when it comes to memory, from the very start (program always starts from a particular address), through execution (memory jumps, branches), until the end (returning from the program).
Virtual memory and MMU allow a program to "think" that it's in a fixed memory space, but in reality the MMU and OS translate those addresses behind the scenes to actual hardware.
Old computers simply didn't have any such hardware or even the need for it, especially when running one program at a time.
Now, I don't think that multiple instances can ever occupy the same memory (block), in a single-tasking system you simply can't run multiple programs, and in a multi-tasking there will always be some piece translating memory between program and hardware.