Generally, different operating systems support different kinds of filesystems, and it is unfortunately rare for two different OSes to support the same filesystem sufficiently for the OS needs.
For example, the default filesystem in Windows is NTFS, which is closed – meaning, a Linux reimplementation of NTFS basically needs to be done by guessing and reverse-engineering, as there are no official specs to read. Linux has two NTFS drivers: one is part of the kernel, but is still low-quality; the other – ntfs-3g – is written using FUSE, which makes it a bit tricky to integrate into the boot process, although it could certainly be done (if booting with an initramfs).
Going in the other direction, out of maybe a dozen filesystems supported by Linux, only ext2/3/4 has third-party drivers available for Windows (ext2IFS and ext2fsd); again, one of them is limited to just ext2, the other claims support for ext3/ext4 but only without a journal, and neither of them are capable of actually booting Windows from a ext2/3/4 partition.
The situation is basically the same regardless of what combination of operating systems you have. Linux cannot read UFS from FreeBSD and needs a third-party driver to support ZFS due to licensing issues (again, booting Linux from ZFS is possible, but it won't necessarily be as easy as using a Linux-native filesystem). FreeBSD also supports just ext2 and – barely – ext3.
In general, the only widely natively supported filesystem is Microsoft's FAT/FAT32, which is quite slow and unreliable compared to everything else above, not to mention its limitations (e.g. file size limited to 2 or 4 GB.)
FAT also does not natively support anything that Unix-like operating systems would expect, i.e. permission bits, access lists, or special files like symlinks. (All of which, yes, NTFS does support.)
There was once a time when one could install Linux on a FAT partition alongside MS-DOS or early Windows systems, using the special
umsdos filesystem driver that would store this additional Unix metadata inside special files hidden from both Linux and MS-DOS. However, it has long since been removed. (Windows itself has dropped support for booting from a FAT partition, too.)
On the other hand, installing two versions of the same operating system to the same partition often is possible, although almost always will result in file conflicts. For example, even though the
\WINDOWS directory name can be changed for a second installation (some releases even had
\WINNT as the default), both systems will still expect to have control over the default
\Program Files directories.
Modern Linux makes this possible rather easily – most installations use an initramfs which has just enough userspace tools to mount the main "root" filesystem on a regular path like
/new_root, then enter it using
pivot_root. It would be trivial to modify the initramfs to make it enter
/mnt/system-two instead – so the root partition would have
/system-two/usr, for example, but both systems would be convinced that they only see their own
/usr, and you could even have the actual filesystem root bound on top of
/all-systems if wanted.
(Note that nowhere do I say that this is actually a good idea.)