I've been playing with cups a bit but I got completely lost.
What I want to do is to be able to print from any machine (Window, Mac, or other) on my network via printer that is attached to my server. I know that there is no Canon support for Ubuntu, and I know there are 3rd party drivers, but those are a wildcard, they might work or might not.
Now, what I want to do is use my server as a "common USB port" for all the clients on the server. They would all have their own drivers for the printer installed.
The point here is that the server isn't managing the printer in any way other than being access point to it (so client-router-server-printer path would work as a USB cable for a local printer) and maybe handling concurrency (if that would pose a problem).
As long as it's within local network (192.168.1.*) the security is not an issue, all would have access.
Is that doable? How?
Canon does provide Linux drivers for many of their printers.
What you are suggesting should work if you successfully set the printer up on your server PC, then tick the box to share the printer.