in case of ethereum, fork is meant to "patch up" the sinking ship so that it can remain afloat for a little bit longer than it could otherwise. there are some issues that you can never solve no matter how much you try. in that ship analogy it would be like trying to fix it while all the components are rotten, corroded and are falling apart.
for example you can't do anything with the 3+ TB blockchain of ethereum! it is that big and you can't undo that. people who want to run a real full node (not the pruned mode they call full node) have to download the entire thing otherwise they are using a centralized blockchain that may be fake and changed.