If it's a non-affine transformation, then you're going to have trouble with line segments staying straight when they should be curved in the image's space. This is a general problem with transforming vectors, and with sufficiently small line segments, isn't usually too much of a problem.
If you don't know ahead of time what the projection parameters are for the image, or if they cannot be represented by standard map-projection parameters - if the image hasn't been rectified for instance - then you really have one course open to you: manual rasterization. If you're on 3D-accelerated hardware, it would be a fairly simple fragment shader to map from one space to another, given that you have the function already. However, if you're working on a headless server or similar, you'll need to roll your own polygon rasterizer, transforming points from one space to the other as you go. This isn't too difficult, and much has been written on it in the past, but it is mostly just time-consuming to write.
A simple, if not very efficient, method would be to scan over each pixel in the satellite image, transform the coordinate into your polygons' space, and do a simple inside/outside test of that point on your polygons. If it's inside, then colour your pixel appropriately. Lines are a bit harder with this method, but you essentially have to measre the cross-track error of your point against the line, and colour it if it is within some distance, but this won't be very pretty. You could use an alpha value based on the CTE, which would smooth the lines out somewhat, but it's hardly the cutting edge of anti-aliasing.