You can use the command line application unzip to do this.
do shell script "unzip 'path/to/file' "
That should do it. Here's a variation that unzips to the same
location as the zipped file (and attempts to avoid messing with any
items that might already exist in the same location):
----------------------
(* Caution: the last statement in the try block deletes the zip file
without trashing it *)
to unzip_and_delete(z)
try
set p to quoted form of z's POSIX path
set n to paragraph 2 of (do shell script "zipinfo " & p)
set n to n's text ((offset of ":" in n) + 4) thru -(1 + ((n ends
with "/") as integer))
set d to (do shell script "dirname " & p) & "/"
set f to d & n as POSIX file
tell application "Finder" to if f exists then error "The " & item
f's class & " \"" & n & "\" already exists."
do shell script "unzip -q " & p & " -d " & quoted form of d
do shell script "rm " & p (* delete the zip file without trashing *)
on error e
display dialog e buttons {"Cancel"} default button 1
end try
end unzip_and_delete
unzip_and_delete(choose file of type "com.pkware.zip-archive" without
invisibles)