We just switched to Lync 2013 at my company and I ran into this issue. I coded a very quick, very basic workaround in AutoHotKey. It will resize (but not move) your chat windows. Recall that this particular bug in Lync 2013 will remember your window position, but not window size.
The default window size is 430x430; this resizes the window to a much roomier 850x600. Feel free to change the size in the script to suit your liking. It only changes the size the first time the window appears. If you proceed to resize the window, the script will not resize the window, nor will it remember the window size after you close it. It will only set the window size the first time the window appears.
If you're unsure how to use AutoHotKey, check their awesome manual.
SetTimer, FixLyncWindow, 500
IfWinExist, ahk_class LyncConversationWindowClass
; First, get the HWND of the window.
; Exit the loop if we have already resized it.
WinGet, currID, ID
; If we're here, we haven't acted on the window,
; or no HWND file list exists,
; which also means we haven't acted on the window.
; So, it's finally time to act on the window.
WinMove, ahk_id %currID%,,,, 850, 600
; Now, we add the HWND to the file so we know we've
; already resized that window and we don't continue
; resizing the window every half-second.
; Now, let's check the file directory to see if any of these
; windows don't exist. If they do not, we can delete the file.
SplitPath, A_LoopFileName,,,, myName
FileList = %FileList%`,%myName%
Loop, parse, FileList, `,
If ( "%A_LoopField%" = "" )
IfWinNotExist, ahk_id %A_LoopField%