How is segmentation different from multiprogramming with fixed partition?
Segmentation partitions the address space into logically distinct parts
usually with the high-order bits representing the segment number, within which the low order bits are a normal linear address space. 

A segment is the unit of access control to memory: one process may be able to read it while another is allowed to write it. 


A process will generally have access to many segments.
Several processes may access the same segment. This is a possible way
for processes to communicate.


In Multiprogramming with fixed partitions, each process occupies a contiguous linear address space. It may or may not be aware of the position of the address space in the computer's memory. The process has complete access to its own address space and no access to any other process's. Any process, however, may make system calls. 

You can put paging (virtual memory) underneath segmented or partitioned memory.