The way i do it - seriously non-professional - is to make a paper pattern - brown paper stuck together with tape and covering all the floor to within about an inch or so of the edges.
Fix it to the floor so it does not move.
Take a small box or a block of wood (I use a cigarette packet) and using the block mark the distance from the wall onto the paper pattern.
When done, carefully lift the pattern in ONE PIECE and lay it on the new uncut floor covering - both right-side up.
Now using the same block you can transfer the shape of the bathroom quite accurately onto the new vinyl. Then cut it out.
Deal with pipes by using a ruler to get the exact centre of the hole you need to cut. Two lines each side of the pipe and a distance to the middle of the pipe.
When it's down on the floor make a very fine bead of silicone sealant along the skirting edges and around the porcelain fittings to stop water spillage getting underneath. The silicone bead will also hide any small gaps.
Good luck...
Peccavi, March 2010