Lgpgnc is very simple program which helps to prepare pgn files for better compression with any compression utility.
Download lgpgnc v1.4 (with TP sources - 21kB)

Changes in version 1.4:
1.Fixed bug in decompression too long player names.
2.Fixed bug in compression routine: special characters in opening name.
3.Converted files are compatible with previous versions.

Changes in version 1.3:
1.Correct process of [EventDate] tag.
2.Added "s" and "mXX" options.
3.Converted files are compatible with previous versions.

Changes in version 1.2:
1.EOLs both DOS(0x0D 0x0A) and Unix(0x0A).
2.Comments({...}) length is not limited.
3.Attack function now about 2 times faster(2.5 times with ASM).
Converted files must be compatible with previous version.

Usage: lgpgnc c|x[0|1][s][mXX] Input_file Output_file
Examples:
lgpgnc c lg71.pgn lg71.lgc          converts lg71.pgn to lg71.lgc
lgpgnc xs lg71.lgc lg71.pgn          silently retrieves lg71.pgn from lg71.cmp with SAN output
lgpgnc x0sm70 lg71.lgc lg71.pgn        the same as previous + right margin is set to 70
lgpgnc x1 lg71.lgc lg71.pgn        retrieves lg71.pgn from lg71.cmp with long algebraic output
Some test results

Name Original WinZip 6.3
max
PkZip 2.50
-exx
Rar
-m5
7zip
-mx
Arhangel
-mt
Boa
-m7
lg71.pgn 155871 50710 50511 49590 48162 38837 36423
lg71.lgc 27406 15397 15106 15760 14989 15131 14568
lg0700a.pgn 358871 119802 119648 115877 113954 86301 81916
lg0700a.lgc 65016 36903 36152 37302 35622 35733 33944
Remarks:
As you can see the size of converted file itself is already smaller than any compressed PGN so you may consider it as a compressor, but it is still compressible 30-50% more and performance difference between slow arithmetic(ARHANGEL,BOA) and fast LZ(ZIP,RAR) compressors is gone...