Your node_modules will look like this:
- Package_A - Package_B - Package_C
- Package_A -- node_modules --- Package_C - Package_B -- node_modules --- Package_C
- Package_A - Package_C_vX - Package_B -- node_modules --- Package_C_vY
Your node_modules will look like this:
It's only when A and B depend on different versions of C that cannot be resolved via semver as safe. I am pretty certain that monkey patching your dependencies is frowned upon in the Node world. It's best to fork the repo make your changes, and then depend on that.