Unfortunately, the given code won't compile on the server, as there is no ModLoader.getMinecraftInstance there. It may be possible to compile it on the client and then put it into the server file, but even if that would work, it would be absolutely bad coding style.
There is no generic way to obtain the world. In the client, you get it through ModLoader.getMinecraftInstance.theWorld, on the server, you have to deal with dimensions & co. I always need to write two implementations.
I think it would be useful to add functions like isMultiplayerClient() and isMultiplayerServer() for use in shared code. the second one returns true if running on the server. the first one returns true if we are client and connected to a server. I could code this myself, but I think it would be good if this would be available at some central place.
I would suggest changing the IPacketHandler.onPacketData method so that the implementor gets the player entity that sent the packet. Currently, one could obtain it from the NetworkManager instance passed, but that doesn't work platform-independantly. As one transaction only affects exactly one player, it could easily be extended to
public void onPacketData(NetworkManager network, EntityPlayer player, String channel, byte[] data);