You'd need to start with the private key and go from there...
You don't need the private key to determine if the address is compressed or not. You only need the public key. Hash both the compressed and uncompressed versions of the public key (it is easy to convert between them) and see which one matches.
You might be able to tell by looking at previous transactions involving those addresses on the blockchain and inspecting the input sizes... ~148 bytes = compressed... ~180 bytes = uncompressed
That method would work, however, the input scripts contain the public key. As long as bitcoins that had previously been received with that address have been spent, you could just look at the public key and see if it is compressed or not.